Diagnoselogs und Test für DB-Reset-Verifikation (FAILED_FINAL)

- [TEMP-TRACE] INFO-Logs in SqliteDocumentRecordRepositoryAdapter:
  deleteByFingerprint() zeigt Fingerprint, jdbcUrl und rowsAffected;
  findByFingerprint() zeigt Fingerprint, jdbcUrl und Lookup-Ergebnis
- [TEMP-TRACE] Log in DocumentProcessingCoordinator.processDeferredOutcome()
  zeigt Fingerprint und Lookup-Ergebnis-Typ nach DB-Abfrage
- Bestehende [TEMP-TRACE] Logs in GuiBatchRunCoordinator und
  SqliteUnitOfWorkAdapter sind ebenfalls enthalten
- Neuer Test resetDocumentByFingerprint_deletesFailedFinalRecord_resultIsDocumentUnknown:
  legt FAILED_FINAL-Datensatz in echter SQLite-DB an, führt Reset aus
  und prüft, dass der Datensatz danach DocumentUnknown zurückliefert

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-04-23 15:00:22 +02:00
parent 83f6d63c27
commit 55088354ab
5 changed files with 62 additions and 4 deletions
@@ -298,7 +298,13 @@ public final class GuiBatchRunCoordinator {
// Reset the database status synchronously before starting the mini-run.
// This ensures that documents are not skipped due to FAILED_FINAL or other
// terminal states.
LOG.info("[TEMP-TRACE] startReprocessing: Konfiguration={}, Fingerprints={}",
configFilePath, fingerprintFilter.stream()
.map(f -> f.sha256Hex().substring(0, 8) + "")
.collect(java.util.stream.Collectors.joining(", ")));
ResetDocumentStatusResult resetResult = resetPort.reset(configFilePath, fingerprintFilter);
LOG.info("[TEMP-TRACE] startReprocessing: Reset-Ergebnis: {} erfolgreich, {} fehlgeschlagen; Fehler={}",
resetResult.successCount(), resetResult.failureCount(), resetResult.failures());
if (resetResult.successCount() == 0) {
LOG.warn("GUI-Reprocessing: Reset für alle {} Dokumente fehlgeschlagen; "
+ "Mini-Lauf wird nicht gestartet.", fingerprintFilter.size());