[jboss-svn-commits] JBL Code SVN: r21399 - 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 15:00:11 EDT 2008


Author: tfennelly
Date: 2008-08-07 15:00:11 -0400 (Thu, 07 Aug 2008)
New Revision: 21399

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-1907

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 18:46:13 UTC (rev 21398)
+++ 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 19:00:11 UTC (rev 21399)
@@ -460,30 +460,32 @@
 			boolean isRulesChanged = false;
 
 			final Map<String, String> ruleSets = lifecycleRuleSets.getLifecycleResource();
-			if ( ruleReload ) 
-			{
-				String currentRuleSet = ruleSets.get( ruleSet );
-				newRuleSet = rbHelper.getRulesAsString( ruleSet, dsl );
-				if ( currentRuleSet == null || !currentRuleSet.equals(newRuleSet) ) 
-				{
-					isRulesChanged = true;
-				}
-			}
-			final Map<String, RuleBase> ruleBases = lifecycleRuleBases.getLifecycleResource();
-			RuleBase ruleBase = ruleBases.get( ruleSet );
-			if ( ruleBase == null || isRulesChanged ) 
-			{
-				ruleBase = rbHelper.createRuleBaseFromRuleFiles(ruleSet, dsl);
-				if (ruleBase != null)
-					ruleBases.put(ruleSet, ruleBase);
-				if (newRuleSet == null) 
-					newRuleSet = rbHelper.getRulesAsString(ruleSet, dsl);
-				if (ruleSet != null)
-					ruleSets.put(ruleSet, newRuleSet);
-			}
 
-			return ruleBase;
+            synchronized (ruleSets) {
+                if ( ruleReload )
+                {
+                    String currentRuleSet = ruleSets.get( ruleSet );
+                    newRuleSet = rbHelper.getRulesAsString( ruleSet, dsl );
+                    if ( currentRuleSet == null || !currentRuleSet.equals(newRuleSet) )
+                    {
+                        isRulesChanged = true;
+                    }
+                }
+                final Map<String, RuleBase> ruleBases = lifecycleRuleBases.getLifecycleResource();
+                RuleBase ruleBase = ruleBases.get( ruleSet );
+                if ( ruleBase == null || isRulesChanged )
+                {
+                    ruleBase = rbHelper.createRuleBaseFromRuleFiles(ruleSet, dsl);
+                    if (ruleBase != null)
+                        ruleBases.put(ruleSet, ruleBase);
+                    if (newRuleSet == null)
+                        newRuleSet = rbHelper.getRulesAsString(ruleSet, dsl);
+                    if (ruleSet != null)
+                        ruleSets.put(ruleSet, newRuleSet);
+                }
 
+                return ruleBase;
+            }            
 		} 
 		catch (final LifecycleResourceException e) 
 		{
@@ -525,14 +527,18 @@
 		final long startTime = System.nanoTime();
 		try 
 		{
-			RuleBase ruleBase = getCachedRuleBases().get( decisionTable );
-			if ( ruleReload || ruleBase == null ) 
-			{
-				ruleBase = DroolsRuleBaseHelper.getInstance().createRuleBaseFromDecisionTable(decisionTable);
-				getCachedRuleBases().put( decisionTable, ruleBase );
-			} 
-			return ruleBase;
-		} 
+            Map<String, RuleBase> ruleBases = getCachedRuleBases();
+
+            synchronized (ruleBases) {
+                RuleBase ruleBase = ruleBases.get( decisionTable );
+                if ( ruleReload || ruleBase == null ) 
+                {
+                    ruleBase = DroolsRuleBaseHelper.getInstance().createRuleBaseFromDecisionTable(decisionTable);
+                    ruleBases.put( decisionTable, ruleBase );
+                }
+                return ruleBase;
+            }
+        }
 		catch (final IOException e) 
 		{
 			updateJBRulesCounter( startTime, decisionTable, JBRulesCounter.RULES_FAILED );
@@ -588,7 +594,7 @@
 	/**
 	 * Execute rules using using the Stateful API
 	 * 
-	 * @param rulebase -
+	 * @param   rulebase -
      * 			the rulebase to use
 	 * @param dispose -
 	 * 			if true the working memory will be dereferenced.	
@@ -663,9 +669,10 @@
 		if ( globals != null )
 		{
 			Set<Entry<String, Object>> entrySet = globals.entrySet();
-			for ( Entry<String, Object> entry : entrySet )
+			for ( Entry<String, Object> entry : entrySet ) {
 				statelessSession.setGlobal( entry.getKey(), entry.getValue() );
-		}
+            }
+        }
 	}
 	
 	/*




More information about the jboss-svn-commits mailing list