[rules-users] NPE exception when retracting fact in Drools 5.5.0.Final and 5.3.0.Final

Mark Proctor mproctor at codehaus.org
Tue Oct 15 15:52:10 EDT 2013


5.6 is pretty much ready to go, someone just has to build it and upload binaries. I'd recommend you build 5.6 and try those binaries.

Mark
On 15 Oct 2013, at 18:53, "Bransford-Koons, Geoff" <Geoff.Bransford-Koons at Teradata.com> wrote:

> 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
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20131015/9692cf30/attachment-0001.html 


More information about the rules-users mailing list