Here is the exact link (thanks Edson):<br><br><a href="http://anonsvn.jboss.org/repos/labs/labs/jbossrules/branches/4.0.x/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java">http://anonsvn.jboss.org/repos/labs/labs/jbossrules/branches/4.0.x/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java</a><br>
<br clear="all">Scott<br><br><br><div class="gmail_quote">On Thu, Nov 6, 2008 at 10:46 AM, Edson Tirelli <span dir="ltr"><<a href="mailto:tirelli@post.com">tirelli@post.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br> It sounds like a bug. Can you get Drools source code and look at the unit test for this to make sure your scenario works there? The file is:<br><br>drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java<br>
<br> Method is:<br><br>testBigDecimal()<br><br> Very easy to add your use case in there.<br><br> Let us know what you find.<br><br> Edson<br><br><div class="gmail_quote">2008/11/6 Marina <span dir="ltr"><<a href="mailto:ppine7@yahoo.com" target="_blank">ppine7@yahoo.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c"><div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">
<div>Hi,<br>
<br>I'm getting unexpected results when when using BigDecimal objects for matching in rules. <br>I'm generating DRL in my code, using freemaker.<br><br>I have a RuleEngineNumericFact object which has two attributes:<br>
String propertyName<br>BigDecimal propertyValue<br><br>Below is an example of a rule where I try to match a RuleEngineNumericFact object based on the two attributes:<br>
<br>rule "aaa"<br> agenda-group "r1"<br> dialect "java"<br> when<br> (RuleEngineNumericFact( propertyName == "somename" , <span style="font-weight: bold;">propertyValue == 10.8 </span>))<br>
then<br> String ruleId = drools.getRule().getName();<br> firedRuleIDs.add(ruleId);<br>end<br><br><br>Then I create a new RuleEngineNumericFact object and set its propertyValue as following:<br><br>String <span style="font-weight: bold;">stringValue = "10.8"</span>;<br>
BigDecimal propertyValue = new BigDecimal(stringValue, new MathContext(10));<br><br>(I also tried to use default precision settings by creating the BigDecimal value as:<br>BigDecimal propertyValue = new BigDecimal(stringValue);<br>
)<br>
<br>When I insert this fact into the rule engine - the rule does not get fired, so the fact does not match.<br><br>One note: if the values are integeres (like, propertyValue == 100) - the rule gets fired. So, it is only the floating point numbers that do not match.<br>
<br>I generate the DRL in my Java code, using freemaker, and I specify the
value that will be used in the rule for matching by calling toString()
method on a BigDecimal object that I get from my business code. The toString() representation ends up to be the "10.8" value (for example).<br>According to the BigDecimal documentation, marshalling from/to the same string representation shoudl still produce BigDecimal objects that will return TRUE from the equals() method when compared.<br>
<br><br>any ideas why this is not working here?<br>How does Drools compare values of objects like BigDecimal?<br><br>thanks,<br><font color="#888888">Marina<br><br><br><br><br>
<br><br></font></div></div></div><br></div></div>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">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><font color="#888888"><br><br clear="all"><br>-- <br> Edson Tirelli<br> JBoss Drools Core Development<br> JBoss, a division of Red Hat @ <a href="http://www.jboss.com" target="_blank">www.jboss.com</a><br>
</font><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>