diff options
author | Jiri Vanek <[email protected]> | 2013-12-20 11:20:39 +0100 |
---|---|---|
committer | Jiri Vanek <[email protected]> | 2013-12-20 11:20:39 +0100 |
commit | 99428f6f586269f4b5856f93adb71385f6c64c97 (patch) | |
tree | f13560c1d4d7200583dc858b1ad8c387023f5013 /netx/net/sourceforge/jnlp/util/logging/LogConfig.java | |
parent | c3b3c491051c08e035593a25850e537168bb1db9 (diff) |
singletons logic, logs and test cleanup/fixes
Diffstat (limited to 'netx/net/sourceforge/jnlp/util/logging/LogConfig.java')
-rw-r--r-- | netx/net/sourceforge/jnlp/util/logging/LogConfig.java | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/netx/net/sourceforge/jnlp/util/logging/LogConfig.java b/netx/net/sourceforge/jnlp/util/logging/LogConfig.java index c02043c..18bcd74 100644 --- a/netx/net/sourceforge/jnlp/util/logging/LogConfig.java +++ b/netx/net/sourceforge/jnlp/util/logging/LogConfig.java @@ -37,8 +37,6 @@ package net.sourceforge.jnlp.util.logging; import java.io.File; -import javax.naming.ConfigurationException; - import net.sourceforge.jnlp.config.DeploymentConfiguration; import net.sourceforge.jnlp.runtime.JNLPRuntime; @@ -56,9 +54,7 @@ public class LogConfig { private boolean logToStreams; private boolean logToSysLog; - private static LogConfig logConfig; - - public LogConfig() { + private LogConfig() { DeploymentConfiguration config = JNLPRuntime.getConfiguration(); // Check whether logging and tracing is enabled. enableLogging = Boolean.parseBoolean(config.getProperty(DeploymentConfiguration.KEY_ENABLE_LOGGING)); @@ -81,18 +77,20 @@ public class LogConfig { } } + private static class LogConfigHolder { + + //https://en.wikipedia.org/wiki/Double-checked_locking#Usage_in_Java + //https://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom + private static volatile LogConfig INSTANCE = new LogConfig(); + } + public static LogConfig getLogConfig() { - if (logConfig == null) { - logConfig = new LogConfig(); - } - return logConfig; + return LogConfigHolder.INSTANCE; } /** For testing only: throw away the previous config */ - static void resetLogConfig() { - if (logConfig != null) { - logConfig = new LogConfig(); - } + static synchronized void resetLogConfig() { + LogConfigHolder.INSTANCE = new LogConfig(); } public String getIcedteaLogDir() { |