You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2011/06/03 21:05:08 UTC
svn commit: r1131144 - in /ofbiz/trunk/framework:
entity/src/org/ofbiz/entity/Delegator.java
entity/src/org/ofbiz/entity/GenericDelegator.java
service/src/org/ofbiz/service/ServiceDispatcher.java
Author: jleroux
Date: Fri Jun 3 19:05:07 2011
New Revision: 1131144
URL: http://svn.apache.org/viewvc?rev=1131144&view=rev
Log:
Closes "JmsTopicListener started twice when distributed-cache-clear is active" reported by Martin Kreidenweis at https://issues.apache.org/jira/browse/OFBIZ-4296
Simply avoid to start a JMS Listener thread from Job Manager when DCC is on. Then set it back to previous value.
Modified:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java
ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java?rev=1131144&r1=1131143&r2=1131144&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java Fri Jun 3 19:05:07 2011
@@ -1209,4 +1209,17 @@ public interface Delegator {
*/
public int storeByCondition(String entityName, Map<String, ? extends Object> fieldsToSet, EntityCondition condition, boolean doCacheClear) throws GenericEntityException;
+ /**
+ * Enables/Disables the JMS listeners globally
+ * (this will not effect any dispatchers already running)
+ * @param enable
+ */
+ public void enableJMS(boolean enable);
+
+ /**
+ * Get Enabled/Disabled JMS listeners status
+ * @return boolean true is JMS listeners are enabled
+ */
+ public boolean getEnabledJMS();
+
}
Modified: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java?rev=1131144&r1=1131143&r2=1131144&view=diff
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java (original)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java Fri Jun 3 19:05:07 2011
@@ -73,6 +73,7 @@ import org.ofbiz.entity.util.EntityCrypt
import org.ofbiz.entity.util.EntityFindOptions;
import org.ofbiz.entity.util.EntityListIterator;
import org.ofbiz.entity.util.SequenceUtil;
+//import org.ofbiz.service.ServiceDispatcher;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -88,7 +89,6 @@ public class GenericDelegator implements
protected ModelReader modelReader = null;
protected ModelGroupReader modelGroupReader = null;
-
/** This flag is only here for lower level technical testing, it shouldn't be user configurable (or at least I don't think so yet); when true all operations without a transaction will be wrapped in one; seems to be necessary for some (all?) XA aware connection pools, and should improve overall stability and consistency */
public static final boolean alwaysUseTransaction = true;
@@ -105,6 +105,7 @@ public class GenericDelegator implements
protected Map<?,?> andCacheFieldSets = FastMap.newInstance();
protected DistributedCacheClear distributedCacheClear = null;
+ protected boolean enableJMS = true;
protected EntityEcaHandler<?> entityEcaHandler = null;
protected SequenceUtil sequencer = null;
protected EntityCrypto crypto = null;
@@ -308,7 +309,10 @@ public class GenericDelegator implements
try {
Class<?> eecahClass = loader.loadClass(entityEcaHandlerClassName);
this.entityEcaHandler = UtilGenerics.cast(eecahClass.newInstance());
+ boolean isJmsEnabled = getEnabledJMS();
+ enableJMS(!getDelegatorInfo().useDistributedCacheClear); // To avoid duplicated JMS listeners (OFBIZ-4296)
this.entityEcaHandler.setDelegator(this);
+ enableJMS(isJmsEnabled);
} catch (ClassNotFoundException e) {
Debug.logWarning(e, "EntityEcaHandler class with name " + entityEcaHandlerClassName + " was not found, Entity ECA Rules will be disabled", module);
} catch (InstantiationException e) {
@@ -2836,4 +2840,19 @@ public class GenericDelegator implements
Debug.logVerbose("Distributed Cache Clear System disabled for delegator [" + delegatorFullName + "]", module);
}
}
+
+
+ /* (non-Javadoc)
+ * @see org.ofbiz.entity.Delegator#enableJMS()
+ */
+ public void enableJMS(boolean enable) {
+ this.enableJMS = enable;
+ }
+
+ /* (non-Javadoc)
+ * @see org.ofbiz.entity.Delegator#getEnableJMS()
+ */
+ public boolean getEnabledJMS() {
+ return this.enableJMS;
+ }
}
Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java?rev=1131144&r1=1131143&r2=1131144&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ServiceDispatcher.java Fri Jun 3 19:05:07 2011
@@ -116,7 +116,7 @@ public class ServiceDispatcher {
}
// make sure we haven't disabled these features from running
- if (enableJMS) {
+ if (enableJMS && this.delegator.getEnabledJMS()) {
this.jlf = new JmsListenerFactory(this);
}
@@ -1100,7 +1100,7 @@ public class ServiceDispatcher {
}
/**
- * Enabled/Disables the Job Manager/Scheduler globally
+ * Enables/Disables the Job Manager/Scheduler globally
* (this will not effect any dispatchers already running)
* @param enable
*/
@@ -1109,7 +1109,7 @@ public class ServiceDispatcher {
}
/**
- * Enabled/Disables the JMS listeners globally
+ * Enables/Disables the JMS listeners globally
* (this will not effect any dispatchers already running)
* @param enable
*/
@@ -1117,8 +1117,17 @@ public class ServiceDispatcher {
ServiceDispatcher.enableJMS = enable;
}
+
+ /**
+ * Get Enabled/Disabled JMS listeners status
+ * @return boolean true is JMS listeners are enabled
+ */
+ public static boolean getEnableJMS() {
+ return ServiceDispatcher.enableJMS;
+ }
+
/**
- * Enabled/Disables the startup services globally
+ * Enables/Disables the startup services globally
* (this will not effect any dispatchers already running)
* @param enable
*/