[jboss-jira] [JBoss JIRA] Created: (JBRULES-2603) WorkingMemory.executeQueuedActions() is not properly handling reentrant calls
Edson Tirelli (JIRA)
jira-events at lists.jboss.org
Wed Jul 28 09:52:33 EDT 2010
WorkingMemory.executeQueuedActions() is not properly handling reentrant calls
-----------------------------------------------------------------------------
Key: JBRULES-2603
URL: https://jira.jboss.org/browse/JBRULES-2603
Project: Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: drools-core
Affects Versions: 5.1.0.CR1
Reporter: Edson Tirelli
Assignee: Edson Tirelli
Fix For: 5.1.0.FINAL
The code looks like:
public void executeQueuedActions() {
try {
startOperation();
if( evaluatingActionQueue.compareAndSet( false, true ) ) {
if ( !this.actionQueue.isEmpty() ) {
WorkingMemoryAction action = null;
while ( (action = actionQueue.poll()) != null ) {
try {
action.execute( this );
} catch ( Exception e ) {
throw new RuntimeDroolsException( "Unexpected exception executing action " + action.toString(),
e );
}
}
}
}
} finally {
evaluatingActionQueue.compareAndSet( true, false );
endOperation();
}
}
What is obviously wrong, since the line
evaluatingActionQueue.compareAndSet( true, false );
should be inside the "if" that sets the variable to true.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list