[
https://issues.jboss.org/browse/DROOLS-1158?page=com.atlassian.jira.plugi...
]
Juan Carlos Garcia commented on DROOLS-1158:
--------------------------------------------
After going thru the DOC, it seems the KieScanner is not an option as we don't deploy
our DTables withing jar files, they are access thru WebDav.
Regardless we have started to make the necessary changes to get rid of the OLD API and
just uses the new KIE interfaces and factories for bootstrapping.
Thanks
NullpointerException when trying to reuse KnowledgePackage into a new
KnowledgeBase
-----------------------------------------------------------------------------------
Key: DROOLS-1158
URL:
https://issues.jboss.org/browse/DROOLS-1158
Project: Drools
Issue Type: Bug
Affects Versions: 6.3.0.Final, 6.4.0.Final
Reporter: Juan Carlos Garcia
Assignee: Matteo Mortari
Attachments: drools-reusepackage.tar, screenshot-1.png
Having a set of DecisionTables which KnowledgePackages are cached in our application,
after we detect a change in any of those XLS files, we build a KnowledgePackages from it,
and then try to create a new KnowledgeBase with the new KnowledgePackages + the rest of
the cached one that that were not modified, but it fails with a NPE internally in Drools
(6.3.0 and 6.4.0)
This is not a problem for the drools version (6.0.1.Final) that we currently uses using
in production.
After debugging and putting a breakpoint into the *MvelConstraint.java:619*, it shows
that it is trying to look for a packageName which hasn't being loaded yet in the new
kbase (but belong to others XLS).
I have attached a project with a testcase that shows the problem, it has 2 DecisionTable
which i had to cut down a little bit (from our real files) and removes some sensitive
information (replacing some of text with FOO-BAR).
{code}
java.lang.NullPointerException
at
org.drools.core.rule.constraint.MvelConstraint.equals(MvelConstraint.java:619)
at org.drools.core.reteoo.AlphaNode.internalEquals(AlphaNode.java:199)
at org.drools.core.common.BaseNode.thisNodeEquals(BaseNode.java:194)
at
org.drools.core.reteoo.CompositeObjectSinkAdapter.getMatchingNode(CompositeObjectSinkAdapter.java:531)
at org.drools.core.reteoo.builder.BuildUtils.attachNode(BuildUtils.java:121)
at
org.drools.core.reteoo.builder.PatternBuilder.buildAlphaNodeChain(PatternBuilder.java:332)
at
org.drools.core.reteoo.builder.PatternBuilder.attachAlphaNodes(PatternBuilder.java:313)
at
org.drools.core.reteoo.builder.PatternBuilder.attachPattern(PatternBuilder.java:130)
at org.drools.core.reteoo.builder.PatternBuilder.build(PatternBuilder.java:78)
at
org.drools.core.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:108)
at
org.drools.core.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:68)
at
org.drools.core.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:161)
at
org.drools.core.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:133)
at org.drools.core.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:106)
at org.drools.core.impl.KnowledgeBaseImpl.addRule(KnowledgeBaseImpl.java:1567)
at org.drools.core.impl.KnowledgeBaseImpl.addRule(KnowledgeBaseImpl.java:1547)
at
org.drools.core.impl.KnowledgeBaseImpl.internalAddPackages(KnowledgeBaseImpl.java:920)
at org.drools.core.impl.KnowledgeBaseImpl.access$000(KnowledgeBaseImpl.java:117)
at org.drools.core.impl.KnowledgeBaseImpl$1.run(KnowledgeBaseImpl.java:708)
at
org.drools.core.impl.KnowledgeBaseImpl.enqueueModification(KnowledgeBaseImpl.java:716)
at
org.drools.core.impl.KnowledgeBaseImpl.addPackages(KnowledgeBaseImpl.java:705)
at
org.drools.core.impl.KnowledgeBaseImpl.addKnowledgePackages(KnowledgeBaseImpl.java:273)
at
org.drools.impl.adapters.KnowledgeBaseAdapter.addKnowledgePackages(KnowledgeBaseAdapter.java:62)
at
bug.demo.BugReloadableDecisionTableTest.addRuleSetToKnowledgeBase(BugReloadableDecisionTableTest.java:63)
at
bug.demo.BugReloadableDecisionTableTest.testReuseKnowledgePackage(BugReloadableDecisionTableTest.java:53)
{code}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)