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..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,6 +87,7 @@ public class DBController implements DBBlocksJournalListener { private Connection connection; private ScheduledFuture updater; private final LocalDateTime blocksJournalCreateDate; + private int processCount; public DBController(Settings settings, DBModel model, UserInputPasswordProvider userInputPasswordProvider) { this.settings = settings; @@ -232,7 +233,7 @@ public List getProcesses() { } public int getProcessesCount() { - return processes.size(); + return processCount; } public DBBlocksJournal getBlocksJournal() { @@ -303,11 +304,20 @@ private void loadProcesses() { } proceedBlocks(tmpProcesses, tmpBlocks); proceedProcesses(tmpProcesses); - 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);