#88: Fehlerursache bei FAILED_FINAL im Verlauf-Tab anzeigen (Fall A)
Schema-Analyse ergab Fall A: failure_message ist bereits in V1 vorhanden und wird persistiert. Keine Flyway-Migration notwendig. - GuiHistoryTab: TextArea 'Fehlerursache' ergaenzt; zeigt failure_message des letzten Fehler-Attempts bei FAILED_FINAL, FAILED_RETRYABLE, SKIPPED_FINAL_FAILURE; promptText-Platzhalter bei NULL/leer - SqliteProcessingAttemptRepositoryAdapter: 1000-Zeichen-Limit fuer failure_message vor Persistierung erzwungen (mit Kuerzungsmarkierung) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+23
-1
@@ -159,7 +159,8 @@ public class SqliteProcessingAttemptRepositoryAdapter implements ProcessingAttem
|
||||
statement.setString(5, attempt.endedAt().toString());
|
||||
statement.setString(6, attempt.status().name());
|
||||
setNullableString(statement, 7, attempt.failureClass());
|
||||
setNullableString(statement, 8, attempt.failureMessage());
|
||||
// 1000-Zeichen-Grenze erzwingen; längere Meldungen werden mit „…" markiert
|
||||
setNullableString(statement, 8, truncateFailureMessage(attempt.failureMessage()));
|
||||
statement.setBoolean(9, attempt.retryable());
|
||||
// AI provider identifier and AI traceability fields
|
||||
setNullableString(statement, 10, attempt.aiProvider());
|
||||
@@ -360,6 +361,27 @@ public class SqliteProcessingAttemptRepositoryAdapter implements ProcessingAttem
|
||||
}
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Hilfsmethoden
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Kürzt eine Fehlermeldung auf maximal 1000 Zeichen vor der Persistierung.
|
||||
* Längere Meldungen werden mit „…" markiert.
|
||||
*
|
||||
* @param message die ursprüngliche Fehlermeldung; kann {@code null} sein
|
||||
* @return die (ggf. gekürzte) Meldung oder {@code null}
|
||||
*/
|
||||
private static String truncateFailureMessage(String message) {
|
||||
if (message == null) {
|
||||
return null;
|
||||
}
|
||||
if (message.length() <= 1000) {
|
||||
return message;
|
||||
}
|
||||
return message.substring(0, 997) + "…";
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// JDBC nullable helpers
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user