This is a bug; it is fixed in 5.2.x and later.<br><br>As a workaround, use an eval, e.g.,<br>   eval( b.getDbl() &gt; b.getLo() || b.getI() == a.getI() )<br><br>-W<br><br><div class="gmail_quote">2011/5/24 Miles Wen <span dir="ltr">&lt;<a href="mailto:miles.wy.1@gmail.com">miles.wy.1@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">That&#39;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 &quot;Hello World&quot;<br>    when<br>
        m1:Msg()<br>        m:Msg(dbl &gt; lo || <a href="http://m1.in" target="_blank">m1.in</a> == in)<br>    then<br>end<br><br>The java bean named &#39;Msg&#39; 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&lt;String&gt; set = new HashSet&lt;String&gt;();<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>

<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>
<br></blockquote></div><br>