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; } } }