You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2013/11/16 02:39:06 UTC

svn commit: r1542443 - in /ofbiz/branches/release13.07: ./ framework/service/src/org/ofbiz/service/jms/JmsListenerFactory.java

Author: adrianc
Date: Sat Nov 16 01:39:06 2013
New Revision: 1542443

URL: http://svn.apache.org/r1542443
Log:
Merged revision(s) 1542442 from ofbiz/trunk:
Replace DCL pattern with AtomicReference in JmsListenerFactory.

https://issues.apache.org/jira/browse/OFBIZ-4455

Modified:
    ofbiz/branches/release13.07/   (props changed)
    ofbiz/branches/release13.07/framework/service/src/org/ofbiz/service/jms/JmsListenerFactory.java

Propchange: ofbiz/branches/release13.07/
------------------------------------------------------------------------------
  Merged /ofbiz/trunk:r1542442

Modified: ofbiz/branches/release13.07/framework/service/src/org/ofbiz/service/jms/JmsListenerFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release13.07/framework/service/src/org/ofbiz/service/jms/JmsListenerFactory.java?rev=1542443&r1=1542442&r2=1542443&view=diff
==============================================================================
--- ofbiz/branches/release13.07/framework/service/src/org/ofbiz/service/jms/JmsListenerFactory.java (original)
+++ ofbiz/branches/release13.07/framework/service/src/org/ofbiz/service/jms/JmsListenerFactory.java Sat Nov 16 01:39:06 2013
@@ -18,7 +18,13 @@
  *******************************************************************************/
 package org.ofbiz.service.jms;
 
+import java.lang.reflect.Constructor;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicReference;
+
 import javolution.util.FastMap;
+
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilMisc;
@@ -29,10 +35,6 @@ import org.ofbiz.service.config.ServiceC
 import org.ofbiz.service.config.model.JmsService;
 import org.ofbiz.service.config.model.Server;
 
-import java.lang.reflect.Constructor;
-import java.util.List;
-import java.util.Map;
-
 /**
  * JmsListenerFactory
  */
@@ -46,7 +48,7 @@ public class JmsListenerFactory implemen
     protected static Map<String, GenericMessageListener> listeners = FastMap.newInstance();
     protected static Map<String, Server> servers = FastMap.newInstance();
 
-    protected static JmsListenerFactory jlf = null;
+    private static final AtomicReference<JmsListenerFactory> jlFactoryRef = new AtomicReference<JmsListenerFactory>(null);
 
     protected Delegator delegator;
     protected boolean firstPass = true;
@@ -56,15 +58,14 @@ public class JmsListenerFactory implemen
 
 
     public static JmsListenerFactory getInstance(Delegator delegator){
-        if (jlf == null) {
-            synchronized (JmsListenerFactory.class) {
-                if (jlf == null) {
-                    jlf = new JmsListenerFactory(delegator);
-                }
+        JmsListenerFactory instance = jlFactoryRef.get();
+        if (instance == null) {
+            instance = new JmsListenerFactory(delegator);
+            if (!jlFactoryRef.compareAndSet(null, instance)) {
+                instance = jlFactoryRef.get();
             }
         }
-
-        return jlf;
+        return instance;
     }
 
     public JmsListenerFactory(Delegator delegator) {