[jboss-jira] [JBoss JIRA] (DROOLS-623) Rule with NOT causes excessive firing of the rule

Mario Fusco (JIRA) issues at jboss.org
Mon Oct 6 09:58:15 EDT 2014


     [ https://issues.jboss.org/browse/DROOLS-623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mario Fusco resolved DROOLS-623.
--------------------------------
           Labels: backport-to-6.0.x  (was: )
    Fix Version/s: 6.2.0.CR1
       Resolution: Done


Fixed by https://github.com/droolsjbpm/drools/commit/35bb5112d

> Rule with NOT causes excessive firing of the rule
> -------------------------------------------------
>
>                 Key: DROOLS-623
>                 URL: https://issues.jboss.org/browse/DROOLS-623
>             Project: Drools
>          Issue Type: Bug
>    Affects Versions: 6.1.0.Final, 6.2.0.Beta1
>            Reporter: Anantjot Anand
>            Assignee: Mario Fusco
>              Labels: backport-to-6.0.x
>             Fix For: 6.2.0.CR1
>
>         Attachments: TestNotSubnetworkIssue.java
>
>
> Debugging of the issue points to De-Activation not able to happen due to RuleExecutor not set dirty upon the call made to BetaNode [line: 369] - doDeleteRightTuple(RightTuple, InternalWorkingMemory, BetaMemory) during reEvaluateNetwork after first time fire of the rule. Further drilling into doDeleteRightTuple indicates memory.unlinkNode(wm) call fails in 
> PathMemory.unlinkedSegment as it finds the isRuleLinked() to be false.
> if (linkedRule && !isRuleLinked()) {
>             doUnlinkRule(wm);
>         }
> Please see the attached junit test case reproducing the issue. There are two rules R1 and R2. R1 sets up criteria needed by R2. 
> There are two changes that make this issue not appear.
> 1) Setting the value required by (inside the NOT clause) rule before calling  fireAllRules.
> 2) Removing the NOT clause from R2.



--
This message was sent by Atlassian JIRA
(v6.3.1#6329)


More information about the jboss-jira mailing list