[jboss-jira] [JBoss JIRA] (DROOLS-1742) NPE in RuleNEtworkEvaluator after incremental compilation
Théophane Charbonnier (JIRA)
issues at jboss.org
Mon Sep 25 05:02:01 EDT 2017
Théophane Charbonnier created DROOLS-1742:
---------------------------------------------
Summary: NPE in RuleNEtworkEvaluator after incremental compilation
Key: DROOLS-1742
URL: https://issues.jboss.org/browse/DROOLS-1742
Project: Drools
Issue Type: Bug
Components: core engine
Affects Versions: 7.3.0.Final
Reporter: Théophane Charbonnier
Assignee: Mario Fusco
Attachments: drools-path-memory-reproducer.zip
Having the following drl files :
{code:drl}
package org.hightea.a
import org.drools.compiler.Message
import org.drools.compiler.FirstClass
rule "RG_1"
when
$event : Message()
FirstClass(item1 == $event.message1)
then
System.out.println("RG_1");
end
{code}
and
{code:drl}
package org.hightea.b
import org.drools.compiler.Message
import org.drools.compiler.SecondClass
rule "RG_2"
when
$event: Message()
SecondClass(item1 == $event.message1)
then
System.out.println("RG_2");
end
{code}
We create a module containing the two packages in two drl files and insert a `SecondClass` fact in the WM.
Then we want to incrementally update to a new module containing only the second DRL.
At first fireAllrules after update, we encounter a NPE in RuleNetwork evaluator (a Segment memory is not defined in the path memory)
{code:java}
java.lang.NullPointerException
at org.drools.core.phreak.RuleNetworkEvaluator.evaluateNetwork(RuleNetworkEvaluator.java:114)
at org.drools.core.phreak.RuleExecutor.reEvaluateNetwork(RuleExecutor.java:212)
at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:87)
at org.drools.core.concurrent.AbstractRuleEvaluator.internalEvaluateAndFire(AbstractRuleEvaluator.java:34)
at org.drools.core.concurrent.SequentialRuleEvaluator.evaluateAndFire(SequentialRuleEvaluator.java:43)
at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1067)
at org.drools.core.common.DefaultAgenda.internalFireAllRules(DefaultAgenda.java:1014)
at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1006)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1320)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1311)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1295)
at org.hightea.IncrementalRemoveRuleTest.testNpeInRuleNetworkEvaluator(IncrementalRemoveRuleTest.java:66)
{code}
Note that we don't encounter this issue when the packages names are the same, or if we exchange the order of drl file name in the first module.
A reproducer is attached with its source code at [https://github.com/hightea/drools-reproducer/tree/path-memory-issue|https://github.com/hightea/drools-reproducer/tree/path-memory-issue]
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the jboss-jira
mailing list