From 2fff5b7f9c31ffc9a8c0d0e92fc47fcb0185d535 Mon Sep 17 00:00:00 2001 From: Elmir Shamsutdinov Date: Fri, 7 Aug 2026 16:42:24 +0300 Subject: [PATCH 1/2] fixed processes counting --- CHANGELOG.md | 1 + .../pgsqlblocks/common/models/DBProcess.java | 6 ++++++ .../modules/db/controller/DBController.java | 12 ++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 044b4175..2fd0c38a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ java-приложение для работы с блокировками в С * Обновлены action-ы в gitHubActions * Прекращена поддержка PostgreSQL версий ниже 10, удалена настройка для отображения типа процесса * Добавлены новые столбцы `Тип ожидаемого события` и `Имя ожидаемого события` +* Исправлен подсчет процессов, теперь учитывается только уникальные pid 1.9.0 diff --git a/src/main/java/ru/taximaxim/pgsqlblocks/common/models/DBProcess.java b/src/main/java/ru/taximaxim/pgsqlblocks/common/models/DBProcess.java index 5c112c44..97b23383 100644 --- a/src/main/java/ru/taximaxim/pgsqlblocks/common/models/DBProcess.java +++ b/src/main/java/ru/taximaxim/pgsqlblocks/common/models/DBProcess.java @@ -107,6 +107,12 @@ public String getBlocksRelationsString() { .collect(Collectors.joining(",")); } + public Set getChildrenPid() { + Set uniqueId = new HashSet<>(); + children.stream().map(e -> uniqueId.addAll(e.getChildrenPid())); + return uniqueId; + } + public int getPid() { return pid; } diff --git a/src/main/java/ru/taximaxim/pgsqlblocks/modules/db/controller/DBController.java b/src/main/java/ru/taximaxim/pgsqlblocks/modules/db/controller/DBController.java index a69e6270..2926a5c1 100644 --- a/src/main/java/ru/taximaxim/pgsqlblocks/modules/db/controller/DBController.java +++ b/src/main/java/ru/taximaxim/pgsqlblocks/modules/db/controller/DBController.java @@ -231,13 +231,13 @@ public List getProcesses() { return processes; } - // TODO possible duplicate processes with same pid public int getProcessesCount() { - return processes.size() + processes.stream().mapToInt(DBController::countChildren).sum(); - } - - private static int countChildren(DBProcess process) { - return process.getChildren().size() + process.getChildren().stream().mapToInt(DBController::countChildren).sum(); + Set uniqueIds = new HashSet<>(); + processes.stream().forEach(e -> { + uniqueIds.add(e.getPid()); + uniqueIds.addAll(e.getChildrenPid()); + }); + return uniqueIds.size(); } public DBBlocksJournal getBlocksJournal() { From 7d2cd27dbb91cb0bac2681f027142c988428c371 Mon Sep 17 00:00:00 2001 From: Elmir Shamsutdinov Date: Tue, 11 Aug 2026 09:17:31 +0300 Subject: [PATCH 2/2] updated by feedback --- .../ru/taximaxim/pgsqlblocks/common/models/DBProcess.java | 6 ------ .../pgsqlblocks/modules/db/controller/DBController.java | 7 +------ 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/main/java/ru/taximaxim/pgsqlblocks/common/models/DBProcess.java b/src/main/java/ru/taximaxim/pgsqlblocks/common/models/DBProcess.java index 97b23383..5c112c44 100644 --- a/src/main/java/ru/taximaxim/pgsqlblocks/common/models/DBProcess.java +++ b/src/main/java/ru/taximaxim/pgsqlblocks/common/models/DBProcess.java @@ -107,12 +107,6 @@ public String getBlocksRelationsString() { .collect(Collectors.joining(",")); } - public Set getChildrenPid() { - Set uniqueId = new HashSet<>(); - children.stream().map(e -> uniqueId.addAll(e.getChildrenPid())); - return uniqueId; - } - public int getPid() { return pid; } diff --git a/src/main/java/ru/taximaxim/pgsqlblocks/modules/db/controller/DBController.java b/src/main/java/ru/taximaxim/pgsqlblocks/modules/db/controller/DBController.java index 2926a5c1..51e1f084 100644 --- a/src/main/java/ru/taximaxim/pgsqlblocks/modules/db/controller/DBController.java +++ b/src/main/java/ru/taximaxim/pgsqlblocks/modules/db/controller/DBController.java @@ -232,12 +232,7 @@ public List getProcesses() { } public int getProcessesCount() { - Set uniqueIds = new HashSet<>(); - processes.stream().forEach(e -> { - uniqueIds.add(e.getPid()); - uniqueIds.addAll(e.getChildrenPid()); - }); - return uniqueIds.size(); + return processes.size(); } public DBBlocksJournal getBlocksJournal() {