Fix V2.8: selectedRows-Leerproblem und isRunning()-Inkonsistenz behoben
- markSelectedRowsAsResetPending() schützt selectedRows jetzt mit selectionSyncInProgress=true, sodass der TableView-SelectionModel- Listener die Selektion nicht löscht, wenn Zeilen ersetzt werden - isRunning() und updateButtonStates() verwenden runningProperty.get() statt coordinator.isRunning() für konsistentes Verhalten zwischen Button-Zustand und Selektion - Diagnose-LOG am Anfang von handleReprocessSelected() gibt isRunning() und selectedRows.size() aus (Laufend=false, Selektion>0 erwartet) - Alle [TEMP-TRACE]-Logs entfernt aus GuiBatchRunCoordinator, SqliteUnitOfWorkAdapter, SqliteDocumentRecordRepositoryAdapter und DocumentProcessingCoordinator Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
+1
-8
@@ -108,13 +108,8 @@ public class SqliteDocumentRecordRepositoryAdapter implements DocumentRecordRepo
|
||||
SKIPPED_ALREADY_PROCESSED, SKIPPED_FINAL_FAILURE ->
|
||||
new DocumentKnownProcessable(record);
|
||||
};
|
||||
logger.info("[TEMP-TRACE] findByFingerprint: fingerprint={}, jdbcUrl={}, Ergebnis={}",
|
||||
fingerprint.sha256Hex(), jdbcUrl, result.getClass().getSimpleName());
|
||||
return result;
|
||||
} else {
|
||||
// Document not found
|
||||
logger.info("[TEMP-TRACE] findByFingerprint: fingerprint={}, jdbcUrl={}, Ergebnis=DocumentUnknown",
|
||||
fingerprint.sha256Hex(), jdbcUrl);
|
||||
return new DocumentUnknown();
|
||||
}
|
||||
}
|
||||
@@ -321,9 +316,7 @@ public class SqliteDocumentRecordRepositoryAdapter implements DocumentRecordRepo
|
||||
PreparedStatement statement = connection.prepareStatement(sql)) {
|
||||
|
||||
statement.setString(1, fingerprint.sha256Hex());
|
||||
int rowsAffected = statement.executeUpdate();
|
||||
logger.info("[TEMP-TRACE] deleteByFingerprint: fingerprint={}, jdbcUrl={}, rowsAffected={}",
|
||||
fingerprint.sha256Hex(), jdbcUrl, rowsAffected);
|
||||
statement.executeUpdate();
|
||||
|
||||
} catch (SQLException e) {
|
||||
String message = "Failed to delete document record for fingerprint '"
|
||||
|
||||
-4
@@ -178,8 +178,6 @@ public class SqliteUnitOfWorkAdapter implements UnitOfWorkPort {
|
||||
*/
|
||||
@Override
|
||||
public void resetDocumentByFingerprint(DocumentFingerprint fingerprint) {
|
||||
logger.info("[TEMP-TRACE] resetDocumentByFingerprint: Fingerprint={}, jdbcUrl={}",
|
||||
fingerprint.sha256Hex(), jdbcUrl);
|
||||
// Delete attempts first (FK constraint: processing_attempt → document_record)
|
||||
SqliteProcessingAttemptRepositoryAdapter attemptRepo =
|
||||
new SqliteProcessingAttemptRepositoryAdapter(jdbcUrl) {
|
||||
@@ -199,8 +197,6 @@ public class SqliteUnitOfWorkAdapter implements UnitOfWorkPort {
|
||||
}
|
||||
};
|
||||
recordRepo.deleteByFingerprint(fingerprint);
|
||||
logger.info("[TEMP-TRACE] resetDocumentByFingerprint: Löschung abgeschlossen für Fingerprint={}",
|
||||
fingerprint.sha256Hex());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user