This is a bug; it is fixed in 5.2.x and later. As a workaround, use an eval, e.g., eval( b.getDbl() > b.getLo() || b.getI() == a.getI() )
-W 2011/5/24 Miles Wen <miles.w...@gmail.com> > That's almost all the details in the mail subject; When I am running this > rule in drools 5.1.0: > > package com.sample > > import com.sample.Msg; > import java.util.Date; > > rule "Hello World" > when > m1:Msg() > m:Msg(dbl > lo || m1.in == in) > then > end > > The java bean named 'Msg' definition: > > package com.sample; > > import java.util.Date; > import java.util.HashSet; > import java.util.Set; > > public class Msg { > private Long lo = 5l; > private double dbl = 5.5; > private Date date = new Date(); > private int in = 4; > private boolean bool; > private Set<String> set = new HashSet<String>(); > ... // getter and setters ignored > > then it throws exception : > > java.lang.NullPointerException > at org.drools.reteoo.LeftTuple.get(LeftTuple.java:399) > at org.drools.reteoo.LeftTuple.get(LeftTuple.java:434) > at > org.drools.rule.VariableRestriction$DoubleVariableContextEntry.updateFromTuple(VariableRestriction.java:563) > at > org.drools.rule.AbstractCompositeConstraint$MultiFieldConstraintContextEntry.updateFromTuple(AbstractCompositeConstraint.java:306) > at > org.drools.common.SingleBetaConstraints.updateFromTuple(SingleBetaConstraints.java:123) > at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:77) > at > org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:189) > at > org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:138) > at > org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:148) > at > org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:450) > at > org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:378) > at > org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:190) > at > org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:145) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1174) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:1123) > at > org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:917) > at > org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:251) > at com.sample.DroolsTest.main(DroolsTest.java:43) > > 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? > > _______________________________________________ > rules-users mailing list > rules-users@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > >
_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users