Bugfix: Historienuebersicht kollidiert nicht mehr mit Scheduler-Config-Lock

loadHistoryOverviewForGui rief migrateConfigurationIfNeeded unbedingt
auf. Bei aktivem Scheduler haelt der Use Case den OS-Lock auf der
Konfigurationsdatei; der Migrations-Lesezugriff lief dadurch in eine
IOException.

Die Migration ist nur einmal noetig; sie wurde bereits beim Aufbau des
ApplicationRunContext durchgefuehrt. Der erneute Aufruf wird daher
uebersprungen, sobald der Kontext steht.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-07 13:51:43 +02:00
parent 8b963adb4f
commit fdfc36afb7
@@ -1884,7 +1884,13 @@ public class BootstrapRunner {
Objects.requireNonNull(configFilePath, CONFIG_FILE_NOT_NULL); Objects.requireNonNull(configFilePath, CONFIG_FILE_NOT_NULL);
Objects.requireNonNull(query, "query must not be null"); Objects.requireNonNull(query, "query must not be null");
try { try {
migrateConfigurationIfNeeded(configFilePath); // Migration nur durchführen, wenn der Anwendungskontext noch nicht steht.
// Steht er bereits, wurde die Migration in initializeApplicationRunContext
// schon einmal abgeschlossen; ein erneuter Lese-/Schreibversuch auf der
// Konfigurationsdatei kollidiert mit einem aktiven Scheduler-Lock.
if (guiApplicationRunContext.isEmpty()) {
migrateConfigurationIfNeeded(configFilePath);
}
StartConfiguration config = loadAndValidateConfiguration(configFilePath); StartConfiguration config = loadAndValidateConfiguration(configFilePath);
initializeSchema(config); initializeSchema(config);
String jdbcUrl = resolveActiveJdbcUrl(config); String jdbcUrl = resolveActiveJdbcUrl(config);