Author: mbrohl
Date: Fri Dec  8 21:24:28 2017
New Revision: 1817573

URL: http://svn.apache.org/viewvc?rev=1817573&view=rev
Log:
Improved: Fixing defects reported by FindBugs, package 
org.apache.ofbiz.order.finaccount.
(OFBIZ-9730)

Thanks Julian Leichert for reporting and providing the patch.

Modified:
    
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java

Modified: 
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java?rev=1817573&r1=1817572&r2=1817573&view=diff
==============================================================================
--- 
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java
 (original)
+++ 
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/finaccount/FinAccountHelper.java
 Fri Dec  8 21:24:28 2017
@@ -22,6 +22,7 @@ package org.apache.ofbiz.order.finaccoun
 import java.math.BigDecimal;
 import java.sql.Timestamp;
 import java.util.List;
+import java.util.Locale;
 import java.util.Random;
 
 import org.apache.ofbiz.base.util.Debug;
@@ -46,8 +47,8 @@ public class FinAccountHelper {
      /**
       * A word on precision: since we're just adding and subtracting, the 
interim figures should have one more decimal place of precision than the final 
numbers.
       */
-     public static int decimals = 
UtilNumber.getBigDecimalScale("finaccount.decimals");
-     public static int rounding = 
UtilNumber.getBigDecimalRoundingMode("finaccount.rounding");
+     public static final int decimals = 
UtilNumber.getBigDecimalScale("finaccount.decimals");
+     public static final int rounding = 
UtilNumber.getBigDecimalRoundingMode("finaccount.rounding");
      public static final BigDecimal ZERO = BigDecimal.ZERO.setScale(decimals, 
rounding);
 
      public static final String giftCertFinAccountTypeId = "GIFTCERT_ACCOUNT";
@@ -136,7 +137,7 @@ public class FinAccountHelper {
          if (finAccountCode == null) {
              return null;
          }
-         finAccountCode = finAccountCode.toUpperCase().replaceAll("[^0-9A-Z]", 
"");
+        finAccountCode = 
finAccountCode.toUpperCase(Locale.getDefault()).replaceAll("[^0-9A-Z]", "");
 
          // now look for the account
          List<GenericValue> accounts = 
EntityQuery.use(delegator).from("FinAccount")
@@ -271,17 +272,17 @@ public class FinAccountHelper {
         Random rand = new Random();
         boolean isValid = false;
         String number = null;
+        StringBuilder numberBuilder = new StringBuilder();
         while (!isValid) {
-            number = "";
             for (int i = 0; i < length; i++) {
                 int randInt = rand.nextInt(9);
-                number = number + randInt;
+                numberBuilder.append(randInt);
             }
 
             if (isId) {
                 int check = UtilValidate.getLuhnCheckDigit(number);
-                number = number + check;
-
+                numberBuilder.append(check);
+                number = numberBuilder.toString();
                 // validate the number
                 if (checkFinAccountNumber(number)) {
                     // make sure this number doens't already exist


Reply via email to