From 1df541d0f91594331e3d29366f15591f8aaae919 Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Thu, 23 Apr 2026 16:16:39 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20#15:=20Fehlende=20Quelldatei=20beim=20Min?= =?UTF-8?q?i-Lauf=20wird=20korrekt=20als=20fehlgeschlagen=20gez=C3=A4hlt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit appendSummary verwendete bisher summary.failedCount() aus dem RunSummary-Objekt des echten Laufs, das von synthesizeMissingSourceFileRows() nachträglich hochgezählte failedCount nicht kannte. Nun werden die lokalen Zähler (successCount, failedCount, skippedCount) verwendet, die über onDocumentCompleted und die Synthese konsistent gepflegt werden. Test ergänzt um Assertion auf '1 fehlgeschlagen' in der Zusammenfassung. Co-Authored-By: Claude Sonnet 4.6 --- .../adapter/in/gui/batchrun/GuiBatchRunTab.java | 10 +++++----- .../gui/batchrun/GuiBatchRunTabSelectionSmokeTest.java | 3 +++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTab.java b/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTab.java index b628be5..04422a0 100644 --- a/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTab.java +++ b/pdf-umbenenner-adapter-in-gui/src/main/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTab.java @@ -979,7 +979,7 @@ public final class GuiBatchRunTab { miniRunCompletedFingerprints = new HashSet<>(); } selectedRows.clear(); - appendSummary(summary, outcome); + appendSummary(outcome); updateButtonStates(); notifyRunStateChanged(); LOG.info("GUI-Verarbeitungslauf: Lauf beendet. successfullyStarted={}, completed={}, " @@ -1065,7 +1065,7 @@ public final class GuiBatchRunTab { result.successCount(), result.requestedCount(), result.failureCount()); } - private void appendSummary(RunSummary summary, GuiBatchRunLaunchOutcome outcome) { + private void appendSummary(GuiBatchRunLaunchOutcome outcome) { if (!outcome.successfullyStarted()) { outcome.failureMessage().ifPresent(GuiBatchRunTab.this::appendMessage); return; @@ -1073,9 +1073,9 @@ public final class GuiBatchRunTab { if (!outcome.batchCompletedNormally()) { outcome.failureMessage().ifPresent(GuiBatchRunTab.this::appendMessage); } - String summaryText = summary.successCount() + " erfolgreich, " - + summary.failedCount() + " fehlgeschlagen, " - + summary.skippedCount() + " übersprungen"; + String summaryText = successCount + " erfolgreich, " + + failedCount + " fehlgeschlagen, " + + skippedCount + " übersprungen"; appendMessage(summaryText); } } diff --git a/pdf-umbenenner-adapter-in-gui/src/test/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTabSelectionSmokeTest.java b/pdf-umbenenner-adapter-in-gui/src/test/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTabSelectionSmokeTest.java index a9b9789..f4b4e83 100644 --- a/pdf-umbenenner-adapter-in-gui/src/test/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTabSelectionSmokeTest.java +++ b/pdf-umbenenner-adapter-in-gui/src/test/java/de/gecheckt/pdf/umbenenner/adapter/in/gui/batchrun/GuiBatchRunTabSelectionSmokeTest.java @@ -258,6 +258,9 @@ class GuiBatchRunTabSelectionSmokeTest { && messageText.get().contains("Quelldatei nicht gefunden: b.pdf"), "Message area must contain German 'Quelldatei nicht gefunden: b.pdf'; was: " + messageText.get()); + assertTrue(messageText.get().contains("1 fehlgeschlagen"), + "Zusammenfassung muss '1 fehlgeschlagen' enthalten (fehlende Quelldatei zählt als Fehler); war: " + + messageText.get()); } /** Minimal thread-safe holder for tests (avoids extra imports). */