Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1228313 - NPE when there's a shared segment in Sequential Mode
NPE when there's a shared segment in Sequential Mode
Status: VERIFIED
Product: JBoss BRMS Platform 6
Classification: Retired
Component: BRE (Show other bugs)
6.2.0
Unspecified Unspecified
unspecified Severity high
: DR1
: 6.2.0
Assigned To: Mario Fusco
Marek Winkler
:
Depends On:
Blocks: 1228551
  Show dependency treegraph
 
Reported: 2015-06-04 11:01 EDT by Mario Fusco
Modified: 2015-10-08 10:46 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1228551 (view as bug list)
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Mario Fusco 2015-06-04 11:01:04 EDT
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)
Comment 1 Mario Fusco 2015-06-04 11:06:39 EDT
Fixed by https://github.com/droolsjbpm/drools/commit/87ee53c88
Comment 3 Marek Winkler 2015-10-08 10:46:25 EDT
Verified in BRMS 6.2.0 ER3.

Note You need to log in before you can comment on or make changes to this bug.