Has the global (?) addressManager been initialized *before* inserting the fact?<div><br></div><div>Does findFirstAddressByTypeByPerson(..) return something != null in this (every) case?</div><div><br></div><div>-W <br><br>
<div class="gmail_quote">On 10 February 2012 20:08, womuji <span dir="ltr"><<a href="mailto:cmregister@gmail.com">cmregister@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I kept getting NPE for the following MVEL express in Drools rule:<br>
---------------------------------------<br>
rule "my Rule"<br>
ruleflow-group "myGroup"<br>
no-loop true<br>
when<br>
not Field(id=="meetingNotes")<br>
$student : Student()<br>
$homeAddress : Address() from<br>
addressManager.findFirstAddressByTypeByPerson( new ReferenceCode("xyz"),<br>
$student )<br>
then<br>
eventFields.put("meetingNotes",new<br>
Field("meetingNotes",AbstractFieldConverter.formatFullAddress($homeAddress)));<br>
end<br>
---------------------------------------<br>
the stack trace is:<br>
---------------------------------------<br>
[Error: null pointer: addressManager.findFirstAddressByTypeByPerson( new<br>
ReferenceCode("xyz"), $student )]<br>
[Near : {... addressManager.findFirstAddres ....}]<br>
^<br>
[Line: 1, Column: 1]<br>
at<br>
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:434)<br>
at<br>
org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:141)<br>
at org.mvel2.ast.ASTNode.optimize(ASTNode.java:157)<br>
at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:113)<br>
at org.mvel2.MVELRuntime.execute(MVELRuntime.java:87)<br>
at<br>
org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:122)<br>
at<br>
org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:115)<br>
at org.mvel2.MVEL.executeExpression(MVEL.java:942)<br>
at<br>
org.drools.base.dataproviders.MVELDataProvider.getResults(MVELDataProvider.java:111)<br>
at org.drools.reteoo.FromNode.assertLeftTuple(FromNode.java:140)<br>
at<br>
org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:197)<br>
at<br>
org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:72)<br>
at org.drools.reteoo.JoinNode.assertObject(JoinNode.java:161)<br>
at<br>
org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:458)<br>
at<br>
org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:386)<br>
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:215)<br>
at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:244)<br>
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:330)<br>
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:291)<br>
at<br>
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:886)<br>
at<br>
org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:845)<br>
at<br>
org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:255)<br>
at<br>
org.drools.command.runtime.rule.InsertObjectCommand.execute(InsertObjectCommand.java:84)<br>
at<br>
org.drools.command.runtime.rule.InsertObjectCommand.execute(InsertObjectCommand.java:38)<br>
at<br>
org.drools.command.runtime.BatchExecutionCommandImpl.execute(BatchExecutionCommandImpl.java:155)<br>
at<br>
org.drools.command.runtime.BatchExecutionCommandImpl.execute(BatchExecutionCommandImpl.java:76)<br>
at<br>
org.drools.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:264)<br>
---------------------------------------<br>
<br>
I'm using Drools5.3.0.Final, which in turn depends on MVEL2.1.0<br>
<br>
Anything wrong with my MVEL expression?<br>
<br>
Thanks in advance.<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
View this message in context: <a href="http://drools.46999.n3.nabble.com/MVEL-Expression-causing-NPE-in-MVEL-optimizer-tp3733427p3733427.html" target="_blank">http://drools.46999.n3.nabble.com/MVEL-Expression-causing-NPE-in-MVEL-optimizer-tp3733427p3733427.html</a><br>
Sent from the Drools: User forum mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></span></blockquote></div><br></div>