[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