Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
When attribute data type is BigDecimal and <af:convertNumber> is used Trin treats the attribute as if the attribute value is changed even though the attribute value has not been changed.
Under the covers the numberConverter is using the java decimalFormat class, and things can get a little funny when you use bigdecimal, because bigdecimal remembers formatting information like scale. So 2.0 is not equal to 2.00 in bigdecimal.
We can add logic to UIXEditableValueHolder that if .equals fails and if the values are the same type and implement comparable we should then check compareTo.
There are 2 workarounds for now.
1] apply the pattern to the bigdecimal in the getter, so in the salary
example code above return newSal instead of sal.
2] check compareTo in the setter, and don't set if you get 0.