[jboss-jira] [JBoss JIRA] Created: (JBRULES-1654) eval() Incorrectly Evaluating BigDecimal to False
Andrew Frederico (JIRA)
jira-events at lists.jboss.org
Sat Jun 21 15:08:37 EDT 2008
eval() Incorrectly Evaluating BigDecimal to False
-------------------------------------------------
Key: JBRULES-1654
URL: http://jira.jboss.com/jira/browse/JBRULES-1654
Project: JBoss Drools
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Decision tables
Affects Versions: 4.0.7
Reporter: Andrew Frederico
Assigned To: Mark Proctor
Even when the condition of an eval() in the "where" block results in TRUE when used in normal code the rule does not fire directly because of the eval() statement.
My class definition:
class BuyOffer() {
private BigDecimal amount;
...
}
The getter from the class:
public BigDecimal getAmount() {
return amount;
}
Assuming that I've setAmount() to something non-zero earlier in the code, the line of code that evaluates to TRUE (verified by System.outing the result):
buyOffer.getAmount().compareTo(BigDecimal.ZERO) > 0
My eval() statement:
eval( buyOffer.getAmount().compareTo(BigDecimal.ZERO) > 0 )
With eval() in place the rule does NOT fire. When removed it DOES and the following line of code prints TRUE.
System.out.printf("buyOffer.getAmount().compareTo(BigDecimal.ZERO) > 0: %s\n", buyOffer.getAmount().compareTo(BigDecimal.ZERO) > 0);
--
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