[jboss-svn-commits] JBL Code SVN: r21395 - labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Aug 7 13:34:53 EDT 2008


Author: tfennelly
Date: 2008-08-07 13:34:53 -0400 (Thu, 07 Aug 2008)
New Revision: 21395

Modified:
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java
Log:
https://jira.jboss.org/jira/browse/JBESB-1902
https://jira.jboss.org/jira/browse/JBESB-1905

Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java	2008-08-07 15:15:10 UTC (rev 21394)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/services/jbrules/src/main/java/org/jboss/internal/soa/esb/services/rules/DroolsRuleService.java	2008-08-07 17:34:53 UTC (rev 21395)
@@ -611,25 +611,25 @@
 			final List<Object> objectList) 
 	{
 		final StatefulSession statefulSession = getStatefulSession( ruleBase );
-		try
-		{
-    		addGlobalsVariables( statefulSession, globals );
-			final List<Object> facts = getFacts( message, objectList );
-    		insertObjectsIntoWorkingMemory( facts, statefulSession );
-    		statefulSession.fireAllRules();
-		}
-		finally 
-		{
-    		if ( dispose ) 
-    		{
-    			for ( StatefulSession session : ruleBase.getStatefulSessions())
-				{
-    				session.dispose();
-				}
-    		}
-		}
+
+        synchronized (statefulSession) {
+            try
+            {
+                addGlobalsVariables( statefulSession, globals );
+                final List<Object> facts = getFacts( message, objectList );
+                insertObjectsIntoWorkingMemory( facts, statefulSession );
+                statefulSession.fireAllRules();
+            }
+            finally
+            {
+                if ( dispose )
+                {
+                    statefulSession.dispose();
+                }
+            }
+        }
 		
-		return message;
+        return message;
 	}
 	
 	private List<Object> getFacts(final Message message, final List<Object> objectList )
@@ -647,10 +647,12 @@
 	 */
 	private StatefulSession getStatefulSession( final RuleBase ruleBase )
 	{
-		final StatefulSession[] statefulSessions = ruleBase.getStatefulSessions();
-		boolean existingSession = statefulSessions != null && statefulSessions.length > 0;
-		return existingSession ? statefulSessions[0] : ruleBase.newStatefulSession();
-	}
+        synchronized (ruleBase) {
+            final StatefulSession[] statefulSessions = ruleBase.getStatefulSessions();
+            boolean existingSession = statefulSessions != null && statefulSessions.length > 0;
+            return existingSession ? statefulSessions[0] : ruleBase.newStatefulSession();
+        }
+    }
 	
 	/*
 	 * Will set the passed-in elements in the globals Map as global




More information about the jboss-svn-commits mailing list