aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/util/logging/LogConfig.java
diff options
context:
space:
mode:
authorJiri Vanek <[email protected]>2013-12-20 11:20:39 +0100
committerJiri Vanek <[email protected]>2013-12-20 11:20:39 +0100
commit99428f6f586269f4b5856f93adb71385f6c64c97 (patch)
treef13560c1d4d7200583dc858b1ad8c387023f5013 /netx/net/sourceforge/jnlp/util/logging/LogConfig.java
parentc3b3c491051c08e035593a25850e537168bb1db9 (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.java24
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() {