]
Edson Tirelli reassigned JBRULES-1268:
--------------------------------------
Assignee: Edson Tirelli (was: Mark Proctor)
Activation.remove() is removing the WRONG activation when used in
events
------------------------------------------------------------------------
Key: JBRULES-1268
URL:
http://jira.jboss.com/jira/browse/JBRULES-1268
Project: JBoss Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Reteoo
Affects Versions: 4.0.2
Reporter: Michael Neale
Assigned To: Edson Tirelli
Priority: Critical
Fix For: 4.1.0
Check out FIXME_testActivationCancellation in MiscTest.java.
It shows how a call to activation.remove() for a given rule (in an event) actually
removed the wrong rule.
The reason for this is that fireNextItem in DefaultAgenda uses
BinaryHeapQueueAgendaGroup.getNext().
This poorly named "getNext()" actually calls dequeue on the queue, so when the
event is called, the activation has ALREADY been dequeued.
Not sure of best solution, other then a queue "peek()" and then dequeue() to be
called after then event is fired (if it wasn't called already).
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: