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

Anantjot Anand (JIRA) issues at jboss.org
Thu Oct 2 00:21:02 EDT 2014


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

Anantjot Anand updated DROOLS-623:
----------------------------------
    Description: 
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.


  was:
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 

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.




> 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: Mark Proctor
>         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