From bd5f1c5fefe49468f4eb9e3d01ce9a77ed1735b6 Mon Sep 17 00:00:00 2001 From: Elmir Shamsutdinov Date: Tue, 11 Aug 2026 12:04:29 +0300 Subject: [PATCH 1/2] fixed --- .../ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java | 2 +- .../pgsqlblocks/modules/db/controller/DBController.java | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java b/src/main/java/ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java index 3eeaa483..342d7d7d 100644 --- a/src/main/java/ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java +++ b/src/main/java/ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java @@ -198,7 +198,7 @@ public int compare(Viewer v, Object e1, Object e2) { res = el1.getModelName().compareTo(el2.getModelName()); break; case COUNT: - res = Integer.compare(el1.getProcessesCount(), el2.getProcessesCount()); + res = Long.compare(el1.getProcessesCount(), el2.getProcessesCount()); break; default: break; 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 51e1f084..d168ef79 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 @@ -87,6 +87,7 @@ public class DBController implements DBBlocksJournalListener { private Connection connection; private ScheduledFuture updater; private final LocalDateTime blocksJournalCreateDate; + private long processCount; public DBController(Settings settings, DBModel model, UserInputPasswordProvider userInputPasswordProvider) { this.settings = settings; @@ -231,8 +232,8 @@ public List getProcesses() { return processes; } - public int getProcessesCount() { - return processes.size(); + public long getProcessesCount() { + return processCount; } public DBBlocksJournal getBlocksJournal() { @@ -303,6 +304,9 @@ private void loadProcesses() { } proceedBlocks(tmpProcesses, tmpBlocks); proceedProcesses(tmpProcesses); + processCount = tmpProcesses.values().stream() + .filter(p -> settings.getShowBackendPid() || p.getPid() != backendPid) + .count(); List procs = tmpProcesses.values().stream() .filter(p -> !p.hasParent()) // do not show this process if setting is set (current pgSqlBlocks connection) From 065f4789d1f03d6049a63f91b5871b5679185515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BD=D1=81=D1=83=D1=80=20=D0=93=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B5=D0=B2?= Date: Tue, 11 Aug 2026 12:18:53 +0300 Subject: [PATCH 2/2] code clean up --- .../pgsqlblocks/common/ui/DBModelsView.java | 2 +- .../modules/db/controller/DBController.java | 26 ++++++++++++------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/main/java/ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java b/src/main/java/ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java index 342d7d7d..3eeaa483 100644 --- a/src/main/java/ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java +++ b/src/main/java/ru/taximaxim/pgsqlblocks/common/ui/DBModelsView.java @@ -198,7 +198,7 @@ public int compare(Viewer v, Object e1, Object e2) { res = el1.getModelName().compareTo(el2.getModelName()); break; case COUNT: - res = Long.compare(el1.getProcessesCount(), el2.getProcessesCount()); + res = Integer.compare(el1.getProcessesCount(), el2.getProcessesCount()); break; default: break; 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 d168ef79..573a07bd 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 @@ -87,7 +87,7 @@ public class DBController implements DBBlocksJournalListener { private Connection connection; private ScheduledFuture updater; private final LocalDateTime blocksJournalCreateDate; - private long processCount; + private int processCount; public DBController(Settings settings, DBModel model, UserInputPasswordProvider userInputPasswordProvider) { this.settings = settings; @@ -232,7 +232,7 @@ public List getProcesses() { return processes; } - public long getProcessesCount() { + public int getProcessesCount() { return processCount; } @@ -304,14 +304,20 @@ private void loadProcesses() { } proceedBlocks(tmpProcesses, tmpBlocks); proceedProcesses(tmpProcesses); - processCount = tmpProcesses.values().stream() - .filter(p -> settings.getShowBackendPid() || p.getPid() != backendPid) - .count(); - List procs = tmpProcesses.values().stream() - .filter(p -> !p.hasParent()) - // do not show this process if setting is set (current pgSqlBlocks connection) - .filter(p -> settings.getShowBackendPid() || p.getPid() != backendPid || !p.getChildren().isEmpty()) - .collect(Collectors.toList()); + + List procs = new ArrayList<>(); + int tmpCounter = 0; + for (DBProcess process : tmpProcesses.values()) { + // do not show this process if setting is set (current pgSqlBlocks connection) + if (process.getPid() == backendPid && !settings.getShowBackendPid() && !process.hasChildren()) { + continue; + } + tmpCounter++; + if (!process.hasParent()) { + procs.add(process); + } + } + processCount = tmpCounter; processesLoaded(procs); } catch (SQLException e) { LOG.error(String.format("Ошибка при получении процессов для %s", model.getName()), e);