diff -r b8b63357edd3 glassfish.common/src/org/netbeans/modules/glassfish/common/GlassfishInstanceProvider.java --- a/glassfish.common/src/org/netbeans/modules/glassfish/common/GlassfishInstanceProvider.java Wed Apr 11 10:09:03 2012 +0200 +++ b/glassfish.common/src/org/netbeans/modules/glassfish/common/GlassfishInstanceProvider.java Wed Apr 11 11:27:54 2012 +0200 @@ -113,55 +113,73 @@ return providerList; } - public static synchronized GlassfishInstanceProvider getEe6() { - if (ee6Provider == null) { - ee6Provider = new GlassfishInstanceProvider( - new String[]{EE6_DEPLOYER_FRAGMENT, EE6WC_DEPLOYER_FRAGMENT}, - new String[]{EE6_INSTANCES_PATH, EE6WC_INSTANCES_PATH}, - null, - true, - new String[]{"docs/javaee6-doc-api.zip"}, // NOI18N - new String[]{"--nopassword"}, // NOI18N - new CommandFactory() { + public static GlassfishInstanceProvider getEe6() { + GlassfishInstanceProvider ret = null; + boolean init = false; - @Override - public SetPropertyCommand getSetPropertyCommand(String name, String value) { - return new ServerCommand.SetPropertyCommand(name, value, - "DEFAULT={0}={1}"); // NOI18N - } + synchronized (GlassfishInstanceProvider.class) { + if (ee6Provider == null) { + init = true; + ee6Provider = new GlassfishInstanceProvider( + new String[]{EE6_DEPLOYER_FRAGMENT, EE6WC_DEPLOYER_FRAGMENT}, + new String[]{EE6_INSTANCES_PATH, EE6WC_INSTANCES_PATH}, + null, + true, + new String[]{"docs/javaee6-doc-api.zip"}, // NOI18N + new String[]{"--nopassword"}, // NOI18N + new CommandFactory() { - }); - ee6Provider.init(); + @Override + public SetPropertyCommand getSetPropertyCommand(String name, String value) { + return new ServerCommand.SetPropertyCommand(name, value, + "DEFAULT={0}={1}"); // NOI18N + } + + }); + } + ret = ee6Provider; } - return ee6Provider; + + if (init) { + ret.init(); + } + return ret; } - public static synchronized GlassfishInstanceProvider getPrelude() { - String[] uriFragments; - String[] instanceDirs; - uriFragments = new String[]{PRELUDE_DEPLOYER_FRAGMENT}; - instanceDirs = new String[]{PRELUDE_INSTANCES_PATH}; - if (preludeProvider == null) { - preludeProvider = new GlassfishInstanceProvider( - uriFragments, - instanceDirs, - org.openide.util.NbBundle.getMessage(GlassfishInstanceProvider.class, - "STR_PRELUDE_SERVER_NAME", new Object[]{}), // NOI18N - false, - new String[]{"docs/javaee6-doc-api.zip"}, // NOI18N - null, - new CommandFactory() { + public static GlassfishInstanceProvider getPrelude() { + GlassfishInstanceProvider ret = null; + boolean init = false; - @Override - public SetPropertyCommand getSetPropertyCommand(String name, String value) { - return new ServerCommand.SetPropertyCommand(name, value, - "target={0}&value={1}"); // NOI18N - } + synchronized (GlassfishInstanceProvider.class) { + if (preludeProvider == null) { + init = true; + String[] uriFragments = new String[]{PRELUDE_DEPLOYER_FRAGMENT}; + String[] instanceDirs = new String[]{PRELUDE_INSTANCES_PATH}; + preludeProvider = new GlassfishInstanceProvider( + uriFragments, + instanceDirs, + org.openide.util.NbBundle.getMessage(GlassfishInstanceProvider.class, + "STR_PRELUDE_SERVER_NAME", new Object[]{}), // NOI18N + false, + new String[]{"docs/javaee6-doc-api.zip"}, // NOI18N + null, + new CommandFactory() { - }); - preludeProvider.init(); + @Override + public SetPropertyCommand getSetPropertyCommand(String name, String value) { + return new ServerCommand.SetPropertyCommand(name, value, + "target={0}&value={1}"); // NOI18N + } + + }); + } + ret = preludeProvider; } - return preludeProvider; + + if (init) { + ret.init(); + } + return ret; } public static final Set activeRegistrationSet = Collections.synchronizedSet(new HashSet()); @@ -209,7 +227,7 @@ Logger.getLogger("glassfish").log(Level.FINE, "***** resultChanged fired ******** {0}", hashCode()); // NOI18N RegisteredDDCatalog catalog = getDDCatalog(); if (null != catalog) { - if (this.equals(preludeProvider)) { + if (this == preludeProvider) { catalog.registerPreludeRunTimeDDCatalog(this); } else { catalog.registerEE6RunTimeDDCatalog(this); @@ -415,7 +433,7 @@ } RegisteredDDCatalog catalog = getDDCatalog(); if (null != catalog) { - if (this.equals(preludeProvider)) { + if (this == preludeProvider) { catalog.registerPreludeRunTimeDDCatalog(this); } else { catalog.registerEE6RunTimeDDCatalog(this);