-
Bug
-
Resolution: Done
-
Major
-
6.1.0.Final, 6.2.0.Beta1
-
None
-
-
Low
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.