From fdfc36afb7e22d501cbb610907900d538fb0b18c Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Thu, 7 May 2026 13:51:43 +0200 Subject: [PATCH] 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 --- .../pdf/umbenenner/bootstrap/BootstrapRunner.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pdf-umbenenner-bootstrap/src/main/java/de/gecheckt/pdf/umbenenner/bootstrap/BootstrapRunner.java b/pdf-umbenenner-bootstrap/src/main/java/de/gecheckt/pdf/umbenenner/bootstrap/BootstrapRunner.java index 1028eb7..2f6fc74 100644 --- a/pdf-umbenenner-bootstrap/src/main/java/de/gecheckt/pdf/umbenenner/bootstrap/BootstrapRunner.java +++ b/pdf-umbenenner-bootstrap/src/main/java/de/gecheckt/pdf/umbenenner/bootstrap/BootstrapRunner.java @@ -1884,7 +1884,13 @@ public class BootstrapRunner { Objects.requireNonNull(configFilePath, CONFIG_FILE_NOT_NULL); Objects.requireNonNull(query, "query must not be null"); 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); initializeSchema(config); String jdbcUrl = resolveActiveJdbcUrl(config);