Author: sichen Date: Wed Nov 29 13:47:26 2006 New Revision: 480727 URL: http://svn.apache.org/viewvc?view=rev&rev=480727 Log: Fix potential divide by zero bug in create invoice services. NEVER USE .equals() WITH BIGDECIMALS
Modified: incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java Modified: incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java URL: http://svn.apache.org/viewvc/incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java?view=diff&rev=480727&r1=480726&r2=480727 ============================================================================== --- incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java (original) +++ incubator/ofbiz/trunk/applications/accounting/src/org/ofbiz/accounting/invoice/InvoiceServices.java Wed Nov 29 13:47:26 2006 @@ -774,7 +774,8 @@ String invoiceIdIn = (String) context.get("invoiceId"); String invoiceItemSeqIdIn = (String) context.get("invoiceItemSeqId"); BigDecimal amountTotal = InvoiceWorker.getInvoiceTotalBd(delegator, invoiceIdIn); - if (amountTotal.equals(ZERO)) { + // never use equals for BigDecimal - use either signum or compareTo + if (amountTotal.signum() == 0) { Debug.logWarning("Invoice [" + invoiceIdIn + "] has an amount total of [" + amountTotal + "], so no commission invoice will be created", module); return ServiceUtil.returnSuccess(UtilProperties.getMessage(resource,"AccountingInvoiceCommissionZeroInvoiceAmount",locale)); }