[ 
https://issues.apache.org/jira/browse/OFBIZ-4427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15277956#comment-15277956
 ] 

Jacques Le Roux commented on OFBIZ-4427:
----------------------------------------

I tried to apply the patch. There are 11 rejected hunks. So I decided to go by 
hand for those but stumbled upon this in InvoiceWorker.java (1st hunk I tried 
to handle by hand)
{code}
@@ -519,12 +519,12 @@
                 conversionRate = 
acctgTransEntry.getBigDecimal("amount").divide(acctgTransEntry.getBigDecimal("origAmount"),
 new MathContext(100)).setScale(decimals,rounding);
             }
             // check if a payment is applied and use the currency conversion 
from there
-            if (UtilValidate.isEmpty(conversionRate)) {
+            if (conversionRate == null) {
                 List<GenericValue> paymentAppls = 
invoice.getRelated("PaymentApplication");
                 for (GenericValue paymentAppl : paymentAppls) {
                     GenericValue payment = 
paymentAppl.getRelatedOne("Payment");
-                    if 
(UtilValidate.isNotEmpty(payment.getBigDecimal("actualCurrencyAmount"))) {
-                        if (UtilValidate.isEmpty(conversionRate)) {
+                    if (payment.getBigDecimal("actualCurrencyAmount") != null) 
{
+                        if (conversionRate == null) {
                             conversionRate = 
payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new
 MathContext(100)).setScale(decimals,rounding);

                         } else {
                             conversionRate = 
conversionRate.add(payment.getBigDecimal("amount").divide(payment.getBigDecimal("actualCurrencyAmount"),new
 MathContext(100))).divide(new BigDecimal("2"),new 
MathContext(100)).setScale(decimals,rounding);
{code}
Obviously the second test on "_conversionRate == null_" does not make sense 
because conversionRate would be necessarily null in the whole block. But I 
guess that the 2 "_conversionRate = ....._" cases were implemented for a 
reason. So I did not dig furter and decided to stop there and to close this as 
won't fix, better to not introduce troubles...

> Possible runtime errors with UtilValidate.isEmpty(Object) should be rather 
> caught during compilation
> ----------------------------------------------------------------------------------------------------
>
>                 Key: OFBIZ-4427
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-4427
>             Project: OFBiz
>          Issue Type: Improvement
>          Components: framework
>    Affects Versions: Trunk
>            Reporter: Jacques Le Roux
>            Assignee: Jacques Le Roux
>            Priority: Minor
>              Labels: UtilValidate.isEmpty
>         Attachments: OFBIZ-4427.patch, OFBIZ-4427_isEmpty.patch
>
>
> Hence we need to remove the UtilValidate.isEmpty(Object) method and provide 
> methods that accept explicit types.  
> Scripting languages should use a facade class that provides methods for 
> working with generic Objects or providing default behaviors.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to