[
https://issues.jboss.org/browse/DROOLS-1229?page=com.atlassian.jira.plugi...
]
Tibor Zimányi updated DROOLS-1229:
----------------------------------
Description:
When using many same rules with after, event expiration cycles itself.
Using 64 copies of this rule [1], code here [2] cycles itself. I think it is because when
it searches through child and peer tuples, it can find already expired tuple and it tries
to expire it again. So the problem is either there or in that there is some cycle in tuple
chain.
[1]
import org.drools.testcoverage.common.model.EventA;
import org.drools.testcoverage.common.model.EventB;
declare org.drools.testcoverage.common.model.EventA @role( event ) @duration(duration) end
declare org.drools.testcoverage.common.model.EventB @role( event ) @duration(duration) end
rule R0 when
$event1: org.drools.testcoverage.common.model.EventA()
$event2: org.drools.testcoverage.common.model.EventB(this != $event1, this after [1,10]
$event1)
then end
[2]
https://github.com/droolsjbpm/drools/blob/master/drools-core/src/main/jav...
I will make a PR with reproducer and proposed fix for this.
was:
When using many same rules with after, event expiration cycles itself.
Using 64 copies of this rule:
I will make a PR with reproducer and proposed fix for this.
Event expiration cycles itself when expiring events from large set of
same rules with "after" operator
------------------------------------------------------------------------------------------------------
Key: DROOLS-1229
URL:
https://issues.jboss.org/browse/DROOLS-1229
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 6.4.0.Final
Reporter: Tibor Zimányi
Assignee: Mario Fusco
When using many same rules with after, event expiration cycles itself.
Using 64 copies of this rule [1], code here [2] cycles itself. I think it is because when
it searches through child and peer tuples, it can find already expired tuple and it tries
to expire it again. So the problem is either there or in that there is some cycle in tuple
chain.
[1]
import org.drools.testcoverage.common.model.EventA;
import org.drools.testcoverage.common.model.EventB;
declare org.drools.testcoverage.common.model.EventA @role( event ) @duration(duration)
end declare org.drools.testcoverage.common.model.EventB @role( event ) @duration(duration)
end rule R0 when
$event1: org.drools.testcoverage.common.model.EventA()
$event2: org.drools.testcoverage.common.model.EventB(this != $event1, this after
[1,10] $event1)
then end
[2]
https://github.com/droolsjbpm/drools/blob/master/drools-core/src/main/jav...
I will make a PR with reproducer and proposed fix for this.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)