Bug 1228313
| Summary: | NPE when there's a shared segment in Sequential Mode | |||
|---|---|---|---|---|
| Product: | [Retired] JBoss BRMS Platform 6 | Reporter: | Mario Fusco <mfusco> | |
| Component: | BRE | Assignee: | Mario Fusco <mfusco> | |
| Status: | CLOSED EOL | QA Contact: | Marek Winkler <mwinkler> | |
| Severity: | high | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 6.2.0 | CC: | agiertli, mbaluch | |
| Target Milestone: | DR1 | |||
| Target Release: | 6.2.0 | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1228551 (view as bug list) | Environment: | ||
| Last Closed: | 2020-03-27 20:11:07 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1228551 | |||
Verified in BRMS 6.2.0 ER3. |
When 2 rules share the same segment in sequential mode as in the following example: rule R1 when $s : String() $m : Message() $i : Integer( this < $s.length ) then modify($m) { setMessage($s) }; end rule R2 when $s : String() $m : Message() $i : Integer( this > $s.length ) then end the following NPE can be thrown: java.lang.NullPointerException at org.drools.core.reteoo.BetaNode.getLeftIterator(BetaNode.java:418) at org.drools.core.phreak.PhreakJoinNode.doRightUpdates(PhreakJoinNode.java:287) at org.drools.core.phreak.PhreakJoinNode.doNode(PhreakJoinNode.java:48) at org.drools.core.phreak.RuleNetworkEvaluator.switchOnDoBetaNode(RuleNetworkEvaluator.java:547) at org.drools.core.phreak.RuleNetworkEvaluator.evalBetaNode(RuleNetworkEvaluator.java:533) at org.drools.core.phreak.RuleNetworkEvaluator.innerEval(RuleNetworkEvaluator.java:334) at org.drools.core.phreak.RuleNetworkEvaluator.outerEval(RuleNetworkEvaluator.java:161) at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:116) at org.drools.core.phreak.RuleExecutor.evaluateNetwork(RuleExecutor.java:87) at org.drools.core.common.DefaultAgenda.evaluateEagerList(DefaultAgenda.java:999) at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:954) at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1243) at org.drools.core.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:950) at org.drools.core.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:924) at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:256) at org.drools.core.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:364)