diff --git a/pdf-umbenenner-application/pom.xml b/pdf-umbenenner-application/pom.xml
index dab27a2..2729fac 100644
--- a/pdf-umbenenner-application/pom.xml
+++ b/pdf-umbenenner-application/pom.xml
@@ -19,6 +19,12 @@
${project.version}
+
+
+ org.apache.logging.log4j
+ log4j-api
+
+
org.json
diff --git a/pdf-umbenenner-application/src/main/java/de/gecheckt/pdf/umbenenner/application/usecase/DefaultResolveHistoricalDocumentContextUseCase.java b/pdf-umbenenner-application/src/main/java/de/gecheckt/pdf/umbenenner/application/usecase/DefaultResolveHistoricalDocumentContextUseCase.java
index 154ce38..87b516e 100644
--- a/pdf-umbenenner-application/src/main/java/de/gecheckt/pdf/umbenenner/application/usecase/DefaultResolveHistoricalDocumentContextUseCase.java
+++ b/pdf-umbenenner-application/src/main/java/de/gecheckt/pdf/umbenenner/application/usecase/DefaultResolveHistoricalDocumentContextUseCase.java
@@ -3,6 +3,9 @@ package de.gecheckt.pdf.umbenenner.application.usecase;
import java.util.Objects;
import java.util.Optional;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import de.gecheckt.pdf.umbenenner.application.port.in.HistoricalDocumentContext;
import de.gecheckt.pdf.umbenenner.application.port.in.ResolveHistoricalDocumentContextUseCase;
import de.gecheckt.pdf.umbenenner.application.port.out.DocumentRecordLookupResult;
@@ -22,15 +25,20 @@ import de.gecheckt.pdf.umbenenner.domain.model.DocumentFingerprint;
* Stammsatz ({@code lastTargetFileName}, {@code lastSuccessInstant}).
* Bei endgültigem Fehlschlag: Fehlzeitpunkt aus dem Stammsatz
* ({@code lastFailureInstant}).
- * In allen anderen Fällen (unbekannt, verarbeitbar) sowie bei technischen
+ * In allen anderen Fällen (unbekannt, verarbeitbar) sowie bei erwarteten technischen
* Abfragefehlern: leeres {@link Optional}.
*
- * Technische Fehler bei der Repository-Abfrage werden intern abgefangen; der Aufrufer
- * erhält stets ein leeres Ergebnis statt einer Ausnahme.
+ * Unerwartete {@link RuntimeException}s aus dem Repository werden geloggt (WARN) und
+ * weiterpropagiert. Erwartete Lookup-Fehler werden als
+ * {@code PersistenceLookupTechnicalFailure} im Rückgabewert kodiert und führen
+ * zu einem leeren {@link Optional}.
*/
public class DefaultResolveHistoricalDocumentContextUseCase
implements ResolveHistoricalDocumentContextUseCase {
+ private static final Logger logger =
+ LogManager.getLogger(DefaultResolveHistoricalDocumentContextUseCase.class);
+
private final DocumentRecordRepository documentRecordRepository;
/**
@@ -76,8 +84,10 @@ public class DefaultResolveHistoricalDocumentContextUseCase
failure.record().lastFailureInstant()));
}
return Optional.empty();
- } catch (Exception e) {
- return Optional.empty();
+ } catch (RuntimeException e) {
+ logger.warn("Unerwarteter Fehler beim Lesen des Dokument-Stammsatzes für Fingerprint {}: {}",
+ fingerprint, e.getMessage(), e);
+ throw e;
}
}
}