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) {