Author: doogie
Date: Sun Apr  4 19:08:52 2010
New Revision: 930738

URL: http://svn.apache.org/viewvc?rev=930738&view=rev
Log:
Don't always recreate the nameSet each time; instead, make it a global
static.

Modified:
    
ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaRule.java

Modified: 
ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaRule.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaRule.java?rev=930738&r1=930737&r2=930738&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaRule.java 
(original)
+++ 
ofbiz/trunk/framework/entityext/src/org/ofbiz/entityext/eca/EntityEcaRule.java 
Sun Apr  4 19:08:52 2010
@@ -41,6 +41,12 @@ public class EntityEcaRule implements ja
 
     public static final String module = EntityEcaRule.class.getName();
 
+    private static final Set<String> nameSet = HashSet<String>(2);
+    static {
+        nameSet.add("set");
+        nameSet.add("action");
+    }
+
     protected String entityName = null;
     protected String operationName = null;
     protected String eventName = null;
@@ -67,9 +73,6 @@ public class EntityEcaRule implements ja
 
         if (Debug.verboseOn()) Debug.logVerbose("Conditions: " + conditions, 
module);
 
-        Set<String> nameSet = FastSet.newInstance();
-        nameSet.add("set");
-        nameSet.add("action");
         for (Element actionOrSetElement: UtilXml.childElementList(eca, 
nameSet)) {
             if ("action".equals(actionOrSetElement.getNodeName())) {
                 this.actionsAndSets.add(new 
EntityEcaAction(actionOrSetElement));
@@ -113,10 +116,9 @@ public class EntityEcaRule implements ja
                     EntityEcaAction ea = (EntityEcaAction) actionOrSet;
                     // in order to enable OR logic without multiple calls to 
the given service,
                     //only execute a given service name once per service call 
phase
-                    if (!actionsRun.contains(ea.serviceName)) {
+                    if (actionsRun.add(ea.serviceName)) {
                         if (Debug.infoOn()) Debug.logInfo("Running Entity ECA 
Service: " + ea.serviceName + ", triggered by rule on Entity: " + 
value.getEntityName(), module);
                         ea.runAction(dctx, context, value);
-                        actionsRun.add(ea.serviceName);
                     }
                 } else {
                     EntityEcaSetField sf = (EntityEcaSetField) actionOrSet;


Reply via email to