[rules-users] NullPointerException with float field

Mark Proctor mproctor at codehaus.org
Fri Nov 28 17:07:28 EST 2008


techy wrote:
> I have rule that logical comparison with two Float fields(like price <
> bidPrice || price >= bidPrice ). I get following exception if one of field
> is null. Is this expected behaviour? Please clarify. Thanks
>   
what version of drools are you using? Nullpointers on direct fields 
should not happen on drools 4.0.5, or 5.0M3.

Mark
>
> Caused by: java.lang.NullPointerException
> 	at
> org.drools.base.extractors.BaseObjectClassFieldExtractor.getFloatValue(BaseObjectClassFieldExtractor.java:84)
> 	at
> org.drools.base.ClassFieldExtractor.getFloatValue(ClassFieldExtractor.java:191)
> 	at
> org.drools.base.evaluators.FloatFactory$FloatLessEvaluator.evaluate(FloatFactory.java:250)
> 	at
> org.drools.rule.VariableRestriction.isAllowed(VariableRestriction.java:73)
> 	at org.drools.rule.VariableConstraint.isAllowed(VariableConstraint.java:67)
> 	at org.drools.rule.AndConstraint.isAllowed(AndConstraint.java:47)
> 	at org.drools.rule.OrConstraint.isAllowed(OrConstraint.java:50)
> 	at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)
> 	at
> org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:22)
> 	at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
> 	at
> org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
> 	at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
> 	at
> org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:22)
> 	at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:145)
> 	at
> org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)
> 	at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)
> 	at org.drools.reteoo.Rete.assertObject(Rete.java:175)
> 	at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)
> 	at
> org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)
> 	at
> org.drools.common.AbstractWorkingMemory.update(AbstractWorkingMemory.java:1287)
> 	at
> org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:103)
>   





More information about the rules-users mailing list