[
https://issues.jboss.org/browse/DROOLS-623?page=com.atlassian.jira.plugin...
]
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)