[jboss-svn-commits] JBL Code SVN: r27024 - in labs/jbossrules/soa_branches/SOA_JDK6: drools-core/src/main/java/org/drools/common and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jun 19 07:23:37 EDT 2009
Author: jcoleman at redhat.com
Date: 2009-06-19 07:23:37 -0400 (Fri, 19 Jun 2009)
New Revision: 27024
Modified:
labs/jbossrules/soa_branches/SOA_JDK6/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilderTest.java
labs/jbossrules/soa_branches/SOA_JDK6/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
labs/jbossrules/soa_branches/SOA_JDK6/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
Log:
Pull across revision 26876 from branches/Branch_4_0_2_SOA_4_2.
JBRULES-1876:
SOA-1286:
Deadlock when RuleAgent thread refreshes rules while another thread creates a statefulSession
Modified: labs/jbossrules/soa_branches/SOA_JDK6/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilderTest.java
===================================================================
--- labs/jbossrules/soa_branches/SOA_JDK6/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilderTest.java 2009-06-19 11:20:23 UTC (rev 27023)
+++ labs/jbossrules/soa_branches/SOA_JDK6/drools-compiler/src/test/java/org/drools/rule/builder/dialect/mvel/MVELSalienceBuilderTest.java 2009-06-19 11:23:37 UTC (rev 27024)
@@ -28,7 +28,6 @@
private InstrumentedBuildContent context;
private RuleBase ruleBase;
- @Override
protected void setUp() throws Exception {
super.setUp();
final Package pkg = new Package( "pkg1" );
Modified: labs/jbossrules/soa_branches/SOA_JDK6/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java
===================================================================
--- labs/jbossrules/soa_branches/SOA_JDK6/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2009-06-19 11:20:23 UTC (rev 27023)
+++ labs/jbossrules/soa_branches/SOA_JDK6/drools-core/src/main/java/org/drools/common/AbstractRuleBase.java 2009-06-19 11:23:37 UTC (rev 27024)
@@ -390,7 +390,7 @@
* @throws FactException
* @throws InvalidPatternException
*/
- public synchronized void addPackage(final Package newPkg) throws PackageIntegrationException {
+ public void addPackage(final Package newPkg) throws PackageIntegrationException {
newPkg.checkValidity();
synchronized ( this.pkgs ) {
final Package pkg = (Package) this.pkgs.get( newPkg.getName() );
@@ -533,16 +533,18 @@
}
}
- private synchronized void addRule(final Package pkg,
+ private void addRule(final Package pkg,
final Rule rule) throws InvalidPatternException {
- this.eventSupport.fireBeforeRuleAdded( pkg,
- rule );
- if ( !rule.isValid() ) {
- throw new IllegalArgumentException( "The rule called " + rule.getName() + " is not valid. Check for compile errors reported." );
+ synchronized ( this.pkgs ) {
+ this.eventSupport.fireBeforeRuleAdded( pkg,
+ rule );
+ if ( !rule.isValid() ) {
+ throw new IllegalArgumentException( "The rule called " + rule.getName() + " is not valid. Check for compile errors reported." );
+ }
+ addRule( rule );
+ this.eventSupport.fireAfterRuleAdded( pkg,
+ rule );
}
- addRule( rule );
- this.eventSupport.fireAfterRuleAdded( pkg,
- rule );
}
protected abstract void addRule(final Rule rule) throws InvalidPatternException;
@@ -652,11 +654,14 @@
private void removeRule(final Package pkg,
final Rule rule) {
- this.eventSupport.fireBeforeRuleRemoved( pkg,
- rule );
- removeRule( rule );
- this.eventSupport.fireAfterRuleRemoved( pkg,
- rule );
+ synchronized ( this.pkgs ) {
+ this.eventSupport.fireBeforeRuleRemoved( pkg,
+ rule );
+
+ removeRule( rule );
+ this.eventSupport.fireAfterRuleRemoved( pkg,
+ rule );
+ }
}
protected abstract void removeRule(Rule rule);
@@ -687,7 +692,7 @@
}
}
- public synchronized void addProcess(final Process process) {
+ public void addProcess(final Process process) {
synchronized ( this.pkgs ) {
this.processes.put( process.getId(),
process );
@@ -695,7 +700,7 @@
}
- public synchronized void removeProcess(final String id) {
+ public void removeProcess(final String id) {
synchronized ( this.pkgs ) {
this.processes.remove( id );
}
@@ -713,8 +718,10 @@
return objenesis;
}
- protected synchronized void addStatefulSession(final StatefulSession statefulSession) {
- this.statefulSessions.add( statefulSession );
+ protected void addStatefulSession(final StatefulSession statefulSession) {
+ synchronized ( this.statefulSessions ) {
+ this.statefulSessions.add( statefulSession );
+ }
}
public Package getPackage(final String name) {
Modified: labs/jbossrules/soa_branches/SOA_JDK6/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java
===================================================================
--- labs/jbossrules/soa_branches/SOA_JDK6/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java 2009-06-19 11:20:23 UTC (rev 27023)
+++ labs/jbossrules/soa_branches/SOA_JDK6/drools-core/src/main/java/org/drools/reteoo/ReteooRuleBase.java 2009-06-19 11:23:37 UTC (rev 27024)
@@ -216,7 +216,7 @@
/**
* @see RuleBase
*/
- public synchronized StatefulSession newStatefulSession(final boolean keepReference) {
+ public StatefulSession newStatefulSession(final boolean keepReference) {
if ( this.config.isSequential() ) {
throw new RuntimeException( "Cannot have a stateful rule session, with sequential configuration set to true" );
}
More information about the jboss-svn-commits
mailing list