From cff47b1c7389ee96de106cd98ac0d365ae3d1c97 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 11 Feb 2026 14:36:55 +0100 Subject: [PATCH] wrap system properties instead of direct modification --- .../launcher/AdminPropertiesSetter.java | 16 +++++++++------- .../launcher/AdminPropertiesSetterTest.java | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/cryptomator/launcher/AdminPropertiesSetter.java b/src/main/java/org/cryptomator/launcher/AdminPropertiesSetter.java index 127d5b263..17c52025e 100644 --- a/src/main/java/org/cryptomator/launcher/AdminPropertiesSetter.java +++ b/src/main/java/org/cryptomator/launcher/AdminPropertiesSetter.java @@ -53,23 +53,25 @@ class AdminPropertiesSetter { static Properties adjustSystemProperties() { var systemProps = System.getProperties(); - final String systemPropertyDefinedAdminFile = System.getProperty(ADMIN_PROP_FILE_KEY); - if (systemPropertyDefinedAdminFile == null) { + final String adminCfgPath = System.getProperty(ADMIN_PROP_FILE_KEY); + if (adminCfgPath == null) { LOG.debug("Path to admin properties file is not defined."); return systemProps; } - var adminProps = loadAdminProperties(Path.of(systemPropertyDefinedAdminFile)); + var adminProps = loadAdminProperties(Path.of(adminCfgPath)); + var newSystemProps = new Properties(systemProps); for (var key : adminProps.stringPropertyNames()) { if (ALLOWED_OVERRIDES.contains(key)) { var value = adminProps.getProperty(key); - LOG.info("Overwriting {} with value {} from admin properties.", key, value); - systemProps.setProperty(key, value); + LOG.info("Overwriting {} with value {} from admin config.", key, value); + newSystemProps.setProperty(key, value); } else { - LOG.debug("Property {} in admin properties is not supported for override.", key); + LOG.debug("Property {} in admin config is not supported for override.", key); } } - return systemProps; + System.setProperties(newSystemProps); + return newSystemProps; } //visible for testing diff --git a/src/test/java/org/cryptomator/launcher/AdminPropertiesSetterTest.java b/src/test/java/org/cryptomator/launcher/AdminPropertiesSetterTest.java index ef855dd5e..ae1d940f3 100644 --- a/src/test/java/org/cryptomator/launcher/AdminPropertiesSetterTest.java +++ b/src/test/java/org/cryptomator/launcher/AdminPropertiesSetterTest.java @@ -79,7 +79,7 @@ public class AdminPropertiesSetterTest { } @Test - @DisplayName("If system property for config path is null, skip do not load anything") + @DisplayName("If system property for config path is null, skip loading and replacing") void skipAdjustSystemPropertiesOnUndefinedProperty() { Assertions.assertNull(System.getProperty("cryptomator.adminConfigPath"));