[ 
https://issues.apache.org/jira/browse/OFBIZ-9730?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Leichert updated OFBIZ-9730:
-----------------------------------
    Attachment: OFBIZ-9730_org.apache.ofbiz.order.finaccount_bugfixes.patch

class FinAccountHelper
 - line 49,50 : changed to final
 - added Locale
 - line 278 : concatenation now with Stringbuilder

> [FB] Package org.apache.ofbiz.order.finaccount
> ----------------------------------------------
>
>                 Key: OFBIZ-9730
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-9730
>             Project: OFBiz
>          Issue Type: Sub-task
>          Components: order
>    Affects Versions: Trunk
>            Reporter: Julian Leichert
>            Priority: Minor
>         Attachments: 
> OFBIZ-9730_org.apache.ofbiz.order.finaccount_bugfixes.patch
>
>
> FinAccountHelper.java:49, MS_SHOULD_BE_FINAL
> - MS: org.apache.ofbiz.order.finaccount.FinAccountHelper.decimals isn't final 
> but should be
> This static field public but not final, and could be changed by malicious 
> code or by accident from another package. The field could be made final to 
> avoid this vulnerability.
> FinAccountHelper.java:50, MS_SHOULD_BE_FINAL
> - MS: org.apache.ofbiz.order.finaccount.FinAccountHelper.rounding isn't final 
> but should be
> This static field public but not final, and could be changed by malicious 
> code or by accident from another package. The field could be made final to 
> avoid this vulnerability.
> FinAccountHelper.java:139, DM_CONVERT_CASE
> - Dm: Use of non-localized String.toUpperCase() or String.toLowerCase() in 
> org.apache.ofbiz.order.finaccount.FinAccountHelper.getFinAccountFromCode(String,
>  Delegator)
> A String is being converted to upper or lowercase, using the platform's 
> default encoding. This may result in improper conversions when used with 
> international characters. Use the
> String.toUpperCase( Locale l )
> String.toLowerCase( Locale l )
> versions instead.
> FinAccountHelper.java:278, SBSC_USE_STRINGBUFFER_CONCATENATION
> - SBSC: 
> org.apache.ofbiz.order.finaccount.FinAccountHelper.generateRandomFinNumber(Delegator,
>  int, boolean) concatenates strings using + in a loop
> The method seems to be building a String using concatenation in a loop. In 
> each iteration, the String is converted to a StringBuffer/StringBuilder, 
> appended to, and converted back to a String. This can lead to a cost 
> quadratic in the number of iterations, as the growing string is recopied in 
> each iteration.
> Better performance can be obtained by using a StringBuffer (or StringBuilder 
> in Java 1.5) explicitly.
> For example:
>   // This is bad
>   String s = "";
>   for (int i = 0; i < field.length; ++i) {
>     s = s + field[i];
>   }
>   // This is better
>   StringBuffer buf = new StringBuffer();
>   for (int i = 0; i < field.length; ++i) {
>     buf.append(field[i]);
>   }
>   String s = buf.toString();



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to