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 87b516e..e2eb391 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 @@ -8,6 +8,7 @@ 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.DocumentPersistenceException; import de.gecheckt.pdf.umbenenner.application.port.out.DocumentRecordLookupResult; import de.gecheckt.pdf.umbenenner.application.port.out.DocumentRecordRepository; import de.gecheckt.pdf.umbenenner.application.port.out.DocumentTerminalFinalFailure; @@ -28,10 +29,11 @@ import de.gecheckt.pdf.umbenenner.domain.model.DocumentFingerprint; *
  • In allen anderen Fällen (unbekannt, verarbeitbar) sowie bei erwarteten technischen * Abfragefehlern: leeres {@link Optional}.
  • * - * Unerwartete {@link RuntimeException}s aus dem Repository werden geloggt (WARN) und - * weiterpropagiert. Erwartete Lookup-Fehler werden als + * {@link DocumentPersistenceException}s aus dem Repository werden geloggt (WARN) und + * führen zu einem leeren {@link Optional}. Andere unerwartete Laufzeitfehler + * propagieren zum Aufrufer. Erwartete Lookup-Fehler werden als * {@code PersistenceLookupTechnicalFailure} im Rückgabewert kodiert und führen - * zu einem leeren {@link Optional}. + * ebenfalls zu einem leeren {@link Optional}. */ public class DefaultResolveHistoricalDocumentContextUseCase implements ResolveHistoricalDocumentContextUseCase { @@ -84,10 +86,10 @@ public class DefaultResolveHistoricalDocumentContextUseCase failure.record().lastFailureInstant())); } return Optional.empty(); - } catch (RuntimeException e) { - logger.warn("Unerwarteter Fehler beim Lesen des Dokument-Stammsatzes für Fingerprint {}: {}", + } catch (DocumentPersistenceException e) { + logger.warn("Persistenzfehler beim Lesen des Dokument-Stammsatzes für Fingerprint {}: {}", fingerprint, e.getMessage(), e); - throw e; + return Optional.empty(); } } } diff --git a/pdf-umbenenner-application/src/main/java/de/gecheckt/pdf/umbenenner/application/usecase/DefaultResolveHistoricalFileNameUseCase.java b/pdf-umbenenner-application/src/main/java/de/gecheckt/pdf/umbenenner/application/usecase/DefaultResolveHistoricalFileNameUseCase.java index 6c2b31e..67c25d4 100644 --- a/pdf-umbenenner-application/src/main/java/de/gecheckt/pdf/umbenenner/application/usecase/DefaultResolveHistoricalFileNameUseCase.java +++ b/pdf-umbenenner-application/src/main/java/de/gecheckt/pdf/umbenenner/application/usecase/DefaultResolveHistoricalFileNameUseCase.java @@ -7,6 +7,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import de.gecheckt.pdf.umbenenner.application.port.in.ResolveHistoricalFileNameUseCase; +import de.gecheckt.pdf.umbenenner.application.port.out.DocumentPersistenceException; import de.gecheckt.pdf.umbenenner.application.port.out.DocumentRecordLookupResult; import de.gecheckt.pdf.umbenenner.application.port.out.DocumentRecordRepository; import de.gecheckt.pdf.umbenenner.application.port.out.DocumentTerminalSuccess; @@ -21,10 +22,11 @@ import de.gecheckt.pdf.umbenenner.domain.model.DocumentFingerprint; *

    * Für alle anderen terminalen Zustände oder wenn kein Stammsatz vorhanden ist, * wird ein leeres {@link Optional} zurückgegeben. - * Unerwartete {@link RuntimeException}s aus dem Repository werden geloggt (WARN) und - * weiterpropagiert. Erwartete Lookup-Fehler werden als + * {@link DocumentPersistenceException}s aus dem Repository werden geloggt (WARN) und + * führen zu einem leeren {@link Optional}. Andere unerwartete Laufzeitfehler + * propagieren zum Aufrufer. Erwartete Lookup-Fehler werden als * {@code PersistenceLookupTechnicalFailure} im Rückgabewert kodiert und führen - * zu einem leeren {@link Optional}. + * ebenfalls zu einem leeren {@link Optional}. */ public class DefaultResolveHistoricalFileNameUseCase implements ResolveHistoricalFileNameUseCase { @@ -69,10 +71,10 @@ public class DefaultResolveHistoricalFileNameUseCase implements ResolveHistorica return Optional.ofNullable(success.record().lastTargetFileName()); } return Optional.empty(); - } catch (RuntimeException e) { - logger.warn("Unerwarteter Fehler beim Lesen des historischen Dateinamens für Fingerprint {}: {}", + } catch (DocumentPersistenceException e) { + logger.warn("Persistenzfehler beim Lesen des historischen Dateinamens für Fingerprint {}: {}", fingerprint, e.getMessage(), e); - throw e; + return Optional.empty(); } } }