Hi, 

I am getting a very puzzling NullPointerException when I call modify() on my object in working memory. I have the following rule:
<p/>
<pre>
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
</pre>
<p/>
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.
<p/>
Here is some activation info for what it's worth:
<p/>
[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@fa2943b2]
[fact 0:1:24821875:24821875:1:com.biperf.optumhealth.rules.ResultContext@17ac073]
]
<p/>
Stacktrace:
<p/>
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



<br><hr align="left" width="300">
View this message in context: <a href="http://drools-java-rules-engine.46999.n3.nabble.com/NullPointerException-modify-tp818403p818403.html">NullPointerException @ modify()</a><br>
Sent from the <a href="http://drools-java-rules-engine.46999.n3.nabble.com/Drools-User-f47000.html">Drools - User mailing list archive</a> at Nabble.com.<br>