[
http://jira.jboss.com/jira/browse/JBRULES-1268?page=all ]
Mark Proctor closed JBRULES-1268.
---------------------------------
Resolution: Done
I've set this to null the queue, so if called twice this method does nothing. I'm
less worried about this as it should never be called by a user. If someone wants to update
javadocs, go for it. We could update the event object not to expose the Activation, that
is a possability. So it just has getRule, getFactHandle methods.
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:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira