ofbiz-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Balkir (JIRA)" <j...@apache.org>
Subject [jira] [Created] (OFBIZ-9575) [FB] Package org.apache.ofbiz.base.util.cache
Date Mon, 14 Aug 2017 13:10:00 GMT
Dennis Balkir created OFBIZ-9575:
------------------------------------

             Summary: [FB] Package org.apache.ofbiz.base.util.cache
                 Key: OFBIZ-9575
                 URL: https://issues.apache.org/jira/browse/OFBIZ-9575
             Project: OFBiz
          Issue Type: Sub-task
          Components: base
    Affects Versions: Trunk
            Reporter: Dennis Balkir
            Priority: Minor


- CacheSoftReference.java:29, SE_NO_SUITABLE_CONSTRUCTOR
Se: org.apache.ofbiz.base.util.cache.CacheSoftReference is Serializable but its superclass
doesn't define an accessible void constructor

This class implements the Serializable interface and its superclass does not. When such an
object is deserialized, the fields of the superclass need to be initialized by invoking the
void constructor of the superclass. Since the superclass does not have one, serialization
and deserialization will fail at runtime.

- CacheSoftReference.java:45, FI_PUBLIC_SHOULD_BE_PROTECTED
FI: org.apache.ofbiz.base.util.cache.CacheSoftReference.finalize() is public; should be protected

A class's finalize() method should have protected access, not public.

- UtilCache.java:-1, SE_BAD_FIELD
Se: Class org.apache.ofbiz.base.util.cache.UtilCache defines non-transient non-serializable
instance field memoryTable

This Serializable class defines a non-primitive instance field which is neither transient,
Serializable, or java.lang.Object, and does not appear to implement the Externalizable interface
or the readObject() and writeObject() methods.  Objects of this class will not be deserialized
correctly if a non-Serializable object is stored in this field.

- UtilCache.java:-1, SE_BAD_FIELD
Se: Class org.apache.ofbiz.base.util.cache.UtilCache defines non-transient non-serializable
instance field listeners

This Serializable class defines a non-primitive instance field which is neither transient,
Serializable, or java.lang.Object, and does not appear to implement the Externalizable interface
or the readObject() and writeObject() methods.  Objects of this class will not be deserialized
correctly if a non-Serializable object is stored in this field.

- UtilCache.java:63, SE_NO_SERIALVERSIONID
SnVI: org.apache.ofbiz.base.util.cache.UtilCache 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.

- UtilCache.java:160, DMI_INVOKING_TOSTRING_ON_ARRAY
USELESS_STRING: Invocation of toString on propNames in org.apache.ofbiz.base.util.cache.UtilCache.getPropertyParam(ResourceBundle,
String[], String)

The code invokes toString on an array, which will generate a fairly useless result such as
[C@16f0472. Consider using Arrays.toString to convert the array into a readable String that
gives the contents of the array. See Programming Puzzlers, chapter 3, puzzle 12.

- UtilCache.java:387, NP_NULL_ON_SOME_PATH_EXCEPTION
NP: Possible null pointer dereference of o in org.apache.ofbiz.base.util.cache.UtilCache.findSizeInBytes(Object)
on exception path

A reference value which is null on some exception control path is dereferenced here.  This
may lead to a NullPointerException when the code is executed.  Note that because FindBugs
currently does not prune infeasible exception paths, this may be a false warning.

Also note that FindBugs considers the default case of a switch statement to be an exception
path, since the default case is often infeasible.



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

Mime
View raw message