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

Michael Brohl closed OFBIZ-9722.
--------------------------------
       Resolution: Implemented
    Fix Version/s: Upcoming Release

Thanks Julian,

your patch is in trunk r1817568. 

> [FB] Package org.apache.ofbiz.base.util.test
> --------------------------------------------
>
>                 Key: OFBIZ-9722
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-9722
>             Project: OFBiz
>          Issue Type: Sub-task
>          Components: base
>    Affects Versions: Trunk
>            Reporter: Julian Leichert
>            Assignee: Michael Brohl
>            Priority: Minor
>             Fix For: Upcoming Release
>
>         Attachments: OFBIZ-9722_org.apache.ofbiz.base.util.test_bugfixes.patch
>
>
> ObjectTypeTests.java:319, DM_FP_NUMBER_CTOR
> -Bx: org.apache.ofbiz.base.util.test.ObjectTypeTests.testDouble() invokes 
> inefficient new Double(String) constructor; use Double.valueOf(String) instead
> Using new Double(double) is guaranteed to always result in a new object 
> whereas Double.valueOf(double) allows caching of values to be done by the 
> compiler, class library, or JVM. Using of cached values avoids object 
> allocation and the code will be faster.
> Unless the class must be compatible with JVMs predating Java 1.5, use either 
> autoboxing or the valueOf() method when creating instances of Double and 
> Float.
> ObjectTypeTests.java:334, DM_FP_NUMBER_CTOR
> -Bx: org.apache.ofbiz.base.util.test.ObjectTypeTests.testFloat() invokes 
> inefficient new Float(String) constructor; use Float.valueOf(String) instead
> Using new Double(double) is guaranteed to always result in a new object 
> whereas Double.valueOf(double) allows caching of values to be done by the 
> compiler, class library, or JVM. Using of cached values avoids object 
> allocation and the code will be faster.
> Unless the class must be compatible with JVMs predating Java 1.5, use either 
> autoboxing or the valueOf() method when creating instances of Double and 
> Float.
> ObjectTypeTests.java:346, DM_FP_NUMBER_CTOR
> - Bx: org.apache.ofbiz.base.util.test.ObjectTypeTests.testLong() invokes 
> inefficient new Double(String) constructor; use Double.valueOf(String) instead
> Using new Double(double) is guaranteed to always result in a new object 
> whereas Double.valueOf(double) allows caching of values to be done by the 
> compiler, class library, or JVM. Using of cached values avoids object 
> allocation and the code will be faster.
> Unless the class must be compatible with JVMs predating Java 1.5, use either 
> autoboxing or the valueOf() method when creating instances of Double and 
> Float.
> ObjectTypeTests.java:347, DM_FP_NUMBER_CTOR
> - Bx: org.apache.ofbiz.base.util.test.ObjectTypeTests.testLong() invokes 
> inefficient new Float(String) constructor; use Float.valueOf(String) instead
> Using new Double(double) is guaranteed to always result in a new object 
> whereas Double.valueOf(double) allows caching of values to be done by the 
> compiler, class library, or JVM. Using of cached values avoids object 
> allocation and the code will be faster.
> Unless the class must be compatible with JVMs predating Java 1.5, use either 
> autoboxing or the valueOf() method when creating instances of Double and 
> Float.
> ObjectTypeTests.java:348, DM_NUMBER_CTOR
> - Bx: org.apache.ofbiz.base.util.test.ObjectTypeTests.testLong() invokes 
> inefficient new Long(String) constructor; use Long.valueOf(String) instead
> Using new Integer(int) is guaranteed to always result in a new object whereas 
> Integer.valueOf(int) allows caching of values to be done by the compiler, 
> class library, or JVM. Using of cached values avoids object allocation and 
> the code will be faster.
> Values between -128 and 127 are guaranteed to have corresponding cached 
> instances and using valueOf is approximately 3.5 times faster than using 
> constructor. For values outside the constant range the performance of both 
> styles is the same.
> Unless the class must be compatible with JVMs predating Java 1.5, use either 
> autoboxing or the valueOf() method when creating instances of Long, Integer, 
> Short, Character, and Byte.
> ObjectTypeTests.java:361, DM_FP_NUMBER_CTOR
> - Bx: org.apache.ofbiz.base.util.test.ObjectTypeTests.testInteger() invokes 
> inefficient new Double(String) constructor; use Double.valueOf(String) instead
> Using new Double(double) is guaranteed to always result in a new object 
> whereas Double.valueOf(double) allows caching of values to be done by the 
> compiler, class library, or JVM. Using of cached values avoids object 
> allocation and the code will be faster.
> Unless the class must be compatible with JVMs predating Java 1.5, use either 
> autoboxing or the valueOf() method when creating instances of Double and 
> Float.
> ObjectTypeTests.java:362, DM_FP_NUMBER_CTOR
> - Bx: org.apache.ofbiz.base.util.test.ObjectTypeTests.testInteger() invokes 
> inefficient new Float(String) constructor; use Float.valueOf(String) instead
> Using new Double(double) is guaranteed to always result in a new object 
> whereas Double.valueOf(double) allows caching of values to be done by the 
> compiler, class library, or JVM. Using of cached values avoids object 
> allocation and the code will be faster.
> Unless the class must be compatible with JVMs predating Java 1.5, use either 
> autoboxing or the valueOf() method when creating instances of Double and 
> Float.
> ReferenceCleanerTests.java:61, DLS_DEAD_LOCAL_STORE_OF_NULL
> - DLS: Dead store of null to obj in 
> org.apache.ofbiz.base.util.test.ReferenceCleanerTests.testReferenceCleaner()
> The code stores null into a local variable, and the stored value is not read. 
> This store may have been introduced to assist the garbage collector, but as 
> of Java SE 6.0, this is no longer needed or useful.
> StringUtilTests.java:51, BC_VACUOUS_INSTANCEOF
> - BC: instanceof will always return true for all nonnull values in 
> org.apache.ofbiz.base.util.test.StringUtilTests.testStringUtil(), since all 
> org.apache.ofbiz.base.util.StringUtil are instances of 
> org.apache.ofbiz.base.util.StringUtil
> This instanceof test will always return true (unless the value being tested 
> is null). Although this is safe, make sure it isn't an indication of some 
> misunderstanding or some other logic error. If you really want to test the 
> value for being null, perhaps it would be clearer to do better to do a null 
> test rather than an instanceof test.
> StringUtilTests.java:56, DM_STRING_CTOR
> - Dm: org.apache.ofbiz.base.util.test.StringUtilTests.testInternString() 
> invokes inefficient new String(String) constructor
> Using the java.lang.String(String) constructor wastes memory because the 
> object so constructed will be functionally indistinguishable from the String 
> passed as a parameter.  Just use the argument String directly.
> UtilObjectTests.java:142, RR_NOT_CHECKED
> - RR: org.apache.ofbiz.base.util.test.UtilObjectTests.testErrorInjector() 
> ignores result of java.io.InputStream.read(byte[], int, int)
> This method ignores the return value of one of the variants of 
> java.io.InputStream.read() which can return multiple bytes.  If the return 
> value is not checked, the caller will not be able to correctly handle the 
> case where fewer bytes were read than the caller requested.  This is a 
> particularly insidious kind of bug, because in many programs, reads from 
> input streams usually do read the full amount of data requested, causing the 
> program to fail only sporadically.
> UtilObjectTests.java:189, SE_NO_SERIALVERSIONID
> - SnVI: org.apache.ofbiz.base.util.test.UtilObjectTests$SerializationInjector 
> is Serializable; consider declaring a serialVersionUID
> This class implements the Serializable interface, but does not define a 
> serialVersionUID field.  A change as simple as adding a reference to a .class 
> object will add synthetic fields to the class, which will unfortunately 
> change the implicit serialVersionUID (e.g., adding a reference to 
> String.class will generate a static field class$java$lang$String). Also, 
> different source code to bytecode compilers may use different naming 
> conventions for synthetic variables generated for references to class objects 
> or inner classes. To ensure interoperability of Serializable across versions, 
> consider adding an explicit serialVersionUID.
> UtilPropertiesTests.java:33, SS_SHOULD_BE_STATIC
> - SS: Unread field: 
> org.apache.ofbiz.base.util.test.UtilPropertiesTests.country; should this 
> field be static?
> This class contains an instance final field that is initialized to a 
> compile-time static value. Consider making the field static.
> UtilPropertiesTests.java:34, SS_SHOULD_BE_STATIC
> - SS: Unread field: 
> org.apache.ofbiz.base.util.test.UtilPropertiesTests.language; should this 
> field be static?
> This class contains an instance final field that is initialized to a 
> compile-time static value. Consider making the field static.
> UtilPropertiesTests.java:78, DM_DEFAULT_ENCODING
> - Dm: Found reliance on default encoding in 
> org.apache.ofbiz.base.util.test.UtilPropertiesTests.xmlToProperties(String): 
> String.getBytes()
> Found a call to a method which will perform a byte to String (or String to 
> byte) conversion, and will assume that the default platform encoding is 
> suitable. This will cause the application behaviour to vary between 
> platforms. Use an alternative API and specify a charset name or Charset 
> object explicitly.
> UtilXmlTests.java:43, DLS_DEAD_LOCAL_STORE
> - DLS: Dead store to unsupportedObject in 
> org.apache.ofbiz.base.util.test.UtilXmlTests.testUnsupportedClassConverter()
> This instruction assigns a value to a local variable, but the value is not 
> read or used in any subsequent instruction. Often, this indicates an error, 
> because the value computed is never used.
> Note that Sun's javac compiler often generates dead stores for final local 
> variables. Because FindBugs is a bytecode-based tool, there is no easy way to 
> eliminate these false positives.
> UtilXmlTests.java:45, DE_MIGHT_IGNORE
> - DE: 
> org.apache.ofbiz.base.util.test.UtilXmlTests.testUnsupportedClassConverter() 
> might ignore java.lang.Exception
> This method might ignore an exception.  In general, exceptions should be 
> handled or reported in some way, or they should be thrown out of the method.



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

Reply via email to