[jboss-jira] [JBoss JIRA] Updated: (JBRULES-1428) ClassCastException when comparing BigDecimal fields
Mark Proctor (JIRA)
jira-events at lists.jboss.org
Wed Mar 12 09:14:58 EDT 2008
[ http://jira.jboss.com/jira/browse/JBRULES-1428?page=all ]
Mark Proctor updated JBRULES-1428:
----------------------------------
Fix Version/s: 4.0.5
5.0.0-M1
> ClassCastException when comparing BigDecimal fields
> ---------------------------------------------------
>
> Key: JBRULES-1428
> URL: http://jira.jboss.com/jira/browse/JBRULES-1428
> Project: JBoss Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 4.0.4
> Reporter: Alexandre Gattiker
> Assigned To: Michael Neale
> Priority: Critical
> Fix For: 4.0.5, 5.0.0-M1
>
>
> Works on Drools 4.0.2 but not on Drools 4.0.4.
> java.lang.ClassCastException: java.lang.Long
> at org.drools.base.evaluators.BigDecimalFactory$BigDecimalGreaterEvaluator.evaluate(BigDecimalFactory.java:318)
> at org.drools.rule.LiteralRestriction.isAllowed(LiteralRestriction.java:61)
> at org.drools.rule.LiteralConstraint.isAllowed(LiteralConstraint.java:82)
> at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:132)
> at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:22)
> at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:153)
> 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.insert(AbstractWorkingMemory.java:909)
> at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:881)
> at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:682)
> at com.sample.DroolsTest.main(DroolsTest.java:27)
> package com.sample
> import com.sample.DroolsTest.Message;
> rule "rule1"
> when
> Message(value > 0)
> then
> end
> public class DroolsTest
> {
> public static final void main(String[] args)
> {
> try
> {
> RuleBase ruleBase = readRule();
> Message a = new Message();
> a.setValue(new BigDecimal(0));
> WorkingMemory workingMemory = ruleBase.newStatefulSession();
> workingMemory.insert(a);
> workingMemory.fireAllRules();
> }
> catch (Throwable t)
> {
> t.printStackTrace();
> }
> }
> private static RuleBase readRule() throws Exception
> {
> Reader source = new InputStreamReader(DroolsTest.class.getResourceAsStream("/Sample.drl"));
> PackageBuilder builder = new PackageBuilder();
> builder.addPackageFromDrl(source);
> Package pkg = builder.getPackage();
> RuleBase ruleBase = RuleBaseFactory.newRuleBase();
> ruleBase.addPackage(pkg);
> return ruleBase;
> }
> public static class Message
> {
> private BigDecimal value;
> public BigDecimal getValue()
> {
> return this.value;
> }
> public void setValue(BigDecimal value)
> {
> this.value = value;
> }
> }
> }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list