Author: dgolovin
Date: 2009-02-09 20:54:57 -0500 (Mon, 09 Feb 2009)
New Revision: 13554
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/navigator/decorator/DecoratorManager.java
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/ModelFeatureFactory.java
trunk/struts/plugins/org.jboss.tools.struts/src/org/jboss/tools/struts/model/helpers/page/LinkRecognizer.java
Log:
fix PMD violations for
http://hudson.qa.jboss.com/hudson/view/DevStudio/job/devstudio-nightly/14...
Double checked locking is not thread safe in Java
Partially created objects can be returned by the Double Checked Locking pattern when used
in Java. An optimizing JRE may assign a reference to the baz variable before it creates
the object the reference is intended to point to. For more details see
http://www.javaworld.com/javaworld/jw-02-2001/jw-0209-double.html.
Modified:
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/ModelFeatureFactory.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/ModelFeatureFactory.java 2009-02-10
01:01:49 UTC (rev 13553)
+++
trunk/common/plugins/org.jboss.tools.common.model/src/org/jboss/tools/common/model/util/ModelFeatureFactory.java 2009-02-10
01:54:57 UTC (rev 13554)
@@ -34,18 +34,9 @@
*/
public class ModelFeatureFactory {
public static final String POINT = "org.jboss.tools.common.model.classes";
- private static final Object mutex = new Object();
- private static ModelFeatureFactory instance;
public static ModelFeatureFactory getInstance() {
- if(instance == null) {
- synchronized (mutex) {
- if(instance == null) {
- instance = new ModelFeatureFactory();
- }
- }
- }
- return instance;
+ return ModelFeatureFactoryHolder.INSTANCE;
}
private Map<String,IConfigurationElement> elements = new HashMap<String,
IConfigurationElement>();
@@ -128,5 +119,9 @@
return null;
}
}
+
+ public static class ModelFeatureFactoryHolder {
+ public static final ModelFeatureFactory INSTANCE = new ModelFeatureFactory();
+ }
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/navigator/decorator/DecoratorManager.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/navigator/decorator/DecoratorManager.java 2009-02-10
01:01:49 UTC (rev 13553)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/navigator/decorator/DecoratorManager.java 2009-02-10
01:54:57 UTC (rev 13554)
@@ -31,9 +31,6 @@
public class DecoratorManager {
public static final String EXTENSION_POINT_ID = ModelUIPlugin.PLUGIN_ID +
".labelDecorator";
- private static Object LOCK = new Object();
- private static DecoratorManager INSTANCE;
-
private Map<String, XModelObjectDecorator> mapByName = new HashMap<String,
XModelObjectDecorator>();
private Map<String, XModelObjectDecorator> mapByEntity = new HashMap<String,
XModelObjectDecorator>();
private Map<String, Set<XModelObjectDecorator>> mapByPartition = new
HashMap<String, Set<XModelObjectDecorator>>();
@@ -44,17 +41,13 @@
}
public static DecoratorManager getInstance() {
- if(INSTANCE == null) {
- synchronized(LOCK) {
- if(INSTANCE == null) {
- DecoratorManager d = new DecoratorManager();
- INSTANCE = d;
- }
- }
- }
- return INSTANCE;
+ return DecoratorManagerHolder.INSTANCE;
}
+ public static class DecoratorManagerHolder {
+ public static DecoratorManager INSTANCE = new DecoratorManager();
+ }
+
public XModelObjectDecorator getDecoratorByEntity(String entity) {
return mapByEntity.get(entity);
}
Modified:
trunk/struts/plugins/org.jboss.tools.struts/src/org/jboss/tools/struts/model/helpers/page/LinkRecognizer.java
===================================================================
---
trunk/struts/plugins/org.jboss.tools.struts/src/org/jboss/tools/struts/model/helpers/page/LinkRecognizer.java 2009-02-10
01:01:49 UTC (rev 13553)
+++
trunk/struts/plugins/org.jboss.tools.struts/src/org/jboss/tools/struts/model/helpers/page/LinkRecognizer.java 2009-02-10
01:54:57 UTC (rev 13554)
@@ -21,21 +21,17 @@
import org.jboss.tools.struts.model.helpers.page.link.Links;
public class LinkRecognizer {
- private static LinkRecognizer instance;
+
private static Object lock = new Object();
public static LinkRecognizer getInstance() {
- if(instance == null) {
- synchronized(lock) {
- if(instance == null) {
- instance = new LinkRecognizer();
- }
- }
- instance.init();
- }
- return instance;
+ return LinkRecognizerHolder.INSTANCE;
}
+ public static class LinkRecognizerHolder {
+ public static LinkRecognizer INSTANCE = new LinkRecognizer();
+ }
+
long timeStamp = 0;
XModel model;
XModelObject option;