That's almost all the details in the mail subject; When I am running this rule in drools 5.1.0:<br><br>package com.sample<br><br>import com.sample.Msg;<br>import java.util.Date;<br><br>rule "Hello World"<br> when<br>
m1:Msg()<br> m:Msg(dbl > lo || <a href="http://m1.in">m1.in</a> == in)<br> then<br>end<br><br>The java bean named 'Msg' definition:<br><br>package com.sample;<br><br>import java.util.Date;<br>
import java.util.HashSet;<br>import java.util.Set;<br><br>public class Msg {<br> private Long lo = 5l;<br> private double dbl = 5.5;<br> private Date date = new Date();<br> private int in = 4;<br> private boolean bool;<br>
private Set<String> set = new HashSet<String>();<br>... // getter and setters ignored<br><br>then it throws exception : <br><br>java.lang.NullPointerException<br> at org.drools.reteoo.LeftTuple.get(LeftTuple.java:399)<br>
at org.drools.reteoo.LeftTuple.get(LeftTuple.java:434)<br> at org.drools.rule.VariableRestriction$DoubleVariableContextEntry.updateFromTuple(VariableRestriction.java:563)<br> at org.drools.rule.AbstractCompositeConstraint$MultiFieldConstraintContextEntry.updateFromTuple(AbstractCompositeConstraint.java:306)<br>
at org.drools.common.SingleBetaConstraints.updateFromTuple(SingleBetaConstraints.java:123)<br> at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:77)<br> at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:189)<br>
at org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:138)<br> at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:148)<br> at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:450)<br>
at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:378)<br> at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:190)<br> at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:145)<br>
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1174)<br> at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1123)<br> at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:917)<br>
at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:251)<br> at com.sample.DroolsTest.main(DroolsTest.java:43)<br><br>I think I am doing nothing wrong with the code, is this a bug or something? Or just comparing properties in the same bean class is illegal?<br>