Skip to content

Commit 2da9127

Browse files
Lauretttaadamretter
authored andcommitted
[bugfix] Normalise Log4j2 config path to file: URI for cross-platform compatibility
Log4j2 cannot resolve a bare Windows path set via the log4j2.configurationFile system property. Converting to a file: URI ensures correct resolution on all platforms.
1 parent 576bd0f commit 2da9127

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

  • exist-start/src/main/java/org/exist/start

exist-start/src/main/java/org/exist/start/Main.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -284,10 +284,11 @@ public void runEx(String[] args) throws StartException {
284284
if (existHomeDir.isPresent() && Files.exists(existHomeDir.get().resolve(CONFIG_DIR_NAME))) {
285285
log4jConfigurationFile = existHomeDir.map(f -> f.resolve(CONFIG_DIR_NAME).resolve("log4j2.xml"));
286286
}
287+
}
287288

288-
if (log4jConfigurationFile.isPresent() && Files.isReadable(log4jConfigurationFile.get())) {
289-
System.setProperty(PROP_LOG4J_CONFIGURATION_FILE, log4jConfigurationFile.get().toAbsolutePath().toString());
290-
}
289+
// Always normalise to a file:/ URI so log4j can resolve it on all platforms (especially Windows)
290+
if (log4jConfigurationFile.isPresent() && Files.isReadable(log4jConfigurationFile.get())) {
291+
System.setProperty(PROP_LOG4J_CONFIGURATION_FILE, log4jConfigurationFile.get().toAbsolutePath().toUri().toString());
291292
}
292293

293294
if (log4jConfigurationFile.isPresent()) {

0 commit comments

Comments
 (0)