I'm trying to update our application from Drools 4.0.7 to Drools 5.5 (or 5.3 if
that's better).
All the rules compile and I am serializing the KnowledgeBase and reading it in
upon application start-up.
Inserting facts works find. Retracting can often return the
NullPointerException shown below. That clip comes from a unit test that
literally just inserts 10 "TestFact" objects and then tries to retract them one
at a time. No rule firing happens, just insertion and retraction. I did try
adding a rule firing in between the insert and retraction loops but it made no
difference. These "TestFact" object don't actually trigger any rules if that
matters.
I've tried this with both the Drools 5.5.0.Final and 5.3.0.Final jars with the
same results. Searches on the forum and on Google show this as a bug in
5.5.0.Final, but say it should work in 5.3.0.Final. It doesn't work on either
for me.
I am going to try some variations on this test, but it seems like this should
work as-is.
Any suggestions would be greatly appreciated.
2013-10-14 11:56:02,533 (ERROR) [AgdKnowledgeSession] caught exception trying
to retract TestFact [name=testfact-0]
java.lang.NullPointerException
at
org.drools.core.util.RightTupleIndexHashTable.remove(RightTupleIndexHashTable.java:365)
at org.drools.reteoo.NotNode.retractRightTuple(NotNode.java:172)
at
org.drools.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:257)
at
org.drools.reteoo.EntryPointNode.retractObject(EntryPointNode.java:330)
at org.drools.common.NamedEntryPoint.retract(NamedEntryPoint.java:542)
at org.drools.common.NamedEntryPoint.retract(NamedEntryPoint.java:486)
at
com.teradata.agd.AgdKnowledgeSession.retract(AgdKnowledgeSession.java:134)
at
com.teradata.agd.AgCoreManager.executeFactEvent(AgCoreManager.java:279)
at
com.teradata.agd.AgCoreManager.executeRuleEngine(AgCoreManager.java:189)
at com.teradata.agd.AgCoreManager.enqueue(AgCoreManager.java:259)
at com.teradata.agd.AgCoreManager.retractFact(AgCoreManager.java:480)
at
com.teradata.agdtest.functional.FactInsertionAndRetractionTest.testFactInsertion(FactInsertionAndRetractionTest.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
at
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
at org.testng.TestRunner.privateRun(TestRunner.java:767)
at org.testng.TestRunner.run(TestRunner.java:617)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:335)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:330)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)
at org.testng.SuiteRunner.run(SuiteRunner.java:240)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
at org.testng.TestNG.run(TestNG.java:1057)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:111)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:175)
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users