[rules-users] NullPointerException @ modify()

H.C. canterburry at gmail.com
Fri May 14 17:29:32 EDT 2010


Hi, 

I am getting a very puzzling NullPointerException when I call modify() on my
object in working memory. I have the following rule:


rule "Assign awardable activity to default context"
	ruleflow-group "select qualified activity"
	when
		$context : ResultContext( activity != null &&
			activity.qualifiedActivity == null )
		$candidate : CandidateMatch( member != null && 
			match != null &&
			$awardable : match &&
			eval( match instanceof QualifiedActivity) &&
			eval(((QualifiedActivity)$awardable).isAwardable()))
		$qa : QualifiedActivity() from $candidate.match
	then
		modify($context){
			getActivity().setQualifiedActivity($qa);
		}		
end


The NullPointerException happens right at modify($context). I can clearly
see the $context object in working memory and this rule wouldn't fire
without this object having a value anyway.

Here is some activation info for what it's worth:

[Activation rule=Assign awardable activity to default context, tuple=[fact
0:129:21218203:1244484333:141:QualifiedActivity[groupID=TRGT41,activityID=OHC.Self.Physical,evaluateGoal=false,shared=false,awardable=true]]
[fact
0:54:30003599:-98318528:138:com.biperf.optumhealth.domain.CandidateMatch at fa2943b2]
[fact
0:1:24821875:24821875:1:com.biperf.optumhealth.rules.ResultContext at 17ac073]
]

Stacktrace:

org.drools.runtime.rule.ConsequenceException: java.lang.NullPointerException
	at
org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:23)
	at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:980)
	at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:917)
	at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1126)
	at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:697)
	at
org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:663)
	at
org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:200)
	at
com.biperf.optumhealth.service.impl.RuleEngineSession.execute(RuleEngineSession.java:89)
	at
com.biperf.optumhealth.rules.qualifiedactivity.TestQualifiedActivity.testFindQualifiedActivity(TestQualifiedActivity.java:88)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
	at
org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98)
	at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79)
	at
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87)
	at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77)
	at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42)
	at
org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88)
	at
org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51)
	at
org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44)
	at
org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27)
	at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37)
	at
org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42)
	at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
	at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.NullPointerException
	at
org.drools.reteoo.RightInputAdapterNode.retractLeftTuple(RightInputAdapterNode.java:153)
	at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateRetractLeftTuple(SingleLeftTupleSinkAdapter.java:131)
	at
org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateRetractLeftTuple(SingleLeftTupleSinkAdapter.java:42)
	at org.drools.reteoo.ExistsNode.retractLeftTuple(ExistsNode.java:356)
	at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateRetractLeftTuple(CompositeLeftTupleSinkAdapter.java:159)
	at
org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateRetractLeftTupleDestroyRightTuple(CompositeLeftTupleSinkAdapter.java:80)
	at org.drools.reteoo.FromNode.retractLeftTuple(FromNode.java:176)
	at
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateRetractLeftTuple(SingleLeftTupleSinkAdapter.java:131)
	at
org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateRetractLeftTupleDestroyRightTuple(SingleLeftTupleSinkAdapter.java:54)
	at org.drools.reteoo.FromNode.retractLeftTuple(FromNode.java:176)
	at org.drools.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:234)
	at org.drools.reteoo.EntryPointNode.retractObject(EntryPointNode.java:195)
	at
org.drools.common.AbstractWorkingMemory.modifyRetract(AbstractWorkingMemory.java:1296)
	at
org.drools.base.DefaultKnowledgeHelper.modifyRetract(DefaultKnowledgeHelper.java:184)
	at
org.drools.base.DefaultKnowledgeHelper.modifyRetract(DefaultKnowledgeHelper.java:180)
	at
com.biperf.optumhealth.Rule_Assign_awardable_activity_to_default_context_0.consequence(Rule_Assign_awardable_activity_to_default_context_0.java:21)
	at
com.biperf.optumhealth.Rule_Assign_awardable_activity_to_default_context_0ConsequenceInvoker.evaluate(Rule_Assign_awardable_activity_to_default_context_0ConsequenceInvoker.java:28)
	at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:971)
	... 29 more



-- 
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/NullPointerException-modify-tp818403p818403.html
Sent from the Drools - User mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100514/d5e11f37/attachment.html 


More information about the rules-users mailing list