# HG changeset patch # User Jiri Vanek # Date 1387380180 -3600 # Node ID 28cc32272dbaccbcacb6c116a71c12fa6dc7ea9f # Parent d690fd6e8510e69aa86dc6ac3251d5eb27c5d6cc JNLPRuntime.config changed to proper singleton. diff -r d690fd6e8510 -r 28cc32272dba ChangeLog --- a/ChangeLog Fri Dec 13 13:44:54 2013 +0100 +++ b/ChangeLog Wed Dec 18 16:23:00 2013 +0100 @@ -1,3 +1,15 @@ +2013-12-17 Jiri Vanek + + JNLPRuntime.config changed to proper singleton. + * netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: added + field with getter rand setter to save loading exception. + * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java: (config) field is no + longer initialized in static block, but on demand in (getConfig). + (initialize) no longer load (config). (initialize) call to + KeyStores.setConfiguration is using (getConfig) instead (config). + (getConfig) is initializing and loading (config), marking exception and sterr + it in case of debug on. Made synchronized. + 2013-12-13 Jiri Vanek itw itself and unittests warning cleanup: fixed rawtypes, redundant casts and unchecks, added braces and Override. @@ -12,7 +24,7 @@ * netx/net/sourceforge/jnlp/controlpanel/CachePane.java * netx/net/sourceforge/jnlp/controlpanel/ControlPanel.java * netx/net/sourceforge/jnlp/controlpanel/DebuggingPanel.java - * netx/net/sourceforge/jnlp/controlpanel/DesktopShortcutPanel.java + * netx/net/sourceforge/jnlp/controlpanel/DesktopShortcutPanel.javaZ * netx/net/sourceforge/jnlp/controlpanel/TemporaryInternetFilesPanel.java * netx/net/sourceforge/jnlp/controlpanel/UnsignedAppletsTrustingListPanel.java * netx/net/sourceforge/jnlp/runtime/AppletEnvironment.java diff -r d690fd6e8510 -r 28cc32272dba netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java --- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Fri Dec 13 13:44:54 2013 +0100 +++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Wed Dec 18 16:23:00 2013 +0100 @@ -167,6 +167,16 @@ */ public static final String KEY_PLUGIN_JVM_ARGUMENTS= "deployment.plugin.jvm.arguments"; public static final String KEY_JRE_DIR= "deployment.jre.dir"; + private ConfigurationException loadingException = null; + + public void setLoadingException(ConfigurationException ex) { + loadingException = ex; + } + + public ConfigurationException getLoadingException() { + return loadingException; + } + public enum ConfigType { System, User diff -r d690fd6e8510 -r 28cc32272dba netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Fri Dec 13 13:44:54 2013 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java Wed Dec 18 16:23:00 2013 +0100 @@ -89,7 +89,7 @@ /** the localized resource strings */ private static ResourceBundle resources; - private static final DeploymentConfiguration config = new DeploymentConfiguration(); + private static DeploymentConfiguration config; /** the security manager */ private static JNLPSecurityManager security; @@ -184,18 +184,13 @@ public static void initialize(boolean isApplication) throws IllegalStateException { checkInitialized(); - try { - config.load(); - config.copyTo(System.getProperties()); - } catch (ConfigurationException e) { - /* exit if there is a fatal exception loading the configuration */ - if (isApplication) { + /* exit if there is a fatal exception loading the configuration */ + if (isApplication && getConfiguration().getLoadingException() != null) { System.out.println(getMessage("RConfigurationError")); System.exit(1); - } } - KeyStores.setConfiguration(config); + KeyStores.setConfiguration(getConfiguration()); initializeStreams(); @@ -356,10 +351,10 @@ * duplicating them as required. */ private static void initializeStreams() { - Boolean enableLogging = Boolean.valueOf(config + Boolean enableLogging = Boolean.valueOf(getConfiguration() .getProperty(DeploymentConfiguration.KEY_ENABLE_LOGGING)); if (redirectStreams || enableLogging) { - String logDir = config.getProperty(DeploymentConfiguration.KEY_USER_LOG_DIR); + String logDir = getConfiguration().getProperty(DeploymentConfiguration.KEY_USER_LOG_DIR); try { File errFile = new File(logDir, JNLPRuntime.STDERR_FILE); @@ -387,7 +382,20 @@ * @return a {@link DeploymentConfiguration} object that can be queried to * find relevant configuration settings */ - public static DeploymentConfiguration getConfiguration() { + public synchronized static DeploymentConfiguration getConfiguration() { + if (config == null){ + config = new DeploymentConfiguration(); + try{ + config.load(); + config.copyTo(System.getProperties()); + }catch(ConfigurationException ex){ + if (JNLPRuntime.isDebug()) { + ex.printStackTrace(); + } + //mark this exceptionas we can die on it later + config.setLoadingException(ex); + } + } return config; }