dev@glassfish.java.net

ACTION: FindBugs 2.0

From: Bill Shannon <bill.shannon_at_oracle.com>
Date: Tue, 07 Feb 2012 12:29:22 -0800

Next Wednesday (Feb 15) we'll be converting to the newest version of
FindBugs. This new version detects additional bugs, described here:
http://findbugs.sourceforge.net/findbugs2.html#newBugPatterns

Some of these newly detected bugs are high priority bugs and MUST BE FIXED
immediately, per our rules:
https://wikis.oracle.com/display/GlassFish/FindBugs

If any of these bugs aren't fixed (or excluded), they'll prevent us from
promoting builds.

Within Oracle, you can view these new bug instances here:
http://hudson-sca.us.oracle.com/job/glassfish-findbugs-shannon/43/findbugsResult/

The complete list is below. Owners will be getting personalized reminders
shortly.

The most popular new bugs are these:
http://findbugs.sourceforge.net/bugDescriptions.html#SE_BAD_FIELD
http://findbugs.sourceforge.net/bugDescriptions.html#ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD
http://findbugs.sourceforge.net/bugDescriptions.html#RC_REF_COMPARISON_BAD_PRACTICE


Owners of other workspaces that are also using FindBugs should contact
me to coordinate the conversion to FindBugs 2.0.


If you want to run FindBugs 2.0 yourself before this switch, add
"-Dfindbugs.version=2.4.0" to your mvn command.


-----
appserver/persistence/cmp/support-sqlstore/src/main/java/com/sun/jdo/spi/persistence/support/sqlstore/impl/PersistenceManagerFactoryImpl.java:70:
SE_BAD_FIELD: Class
com.sun.jdo.spi.persistence.support.sqlstore.impl.PersistenceManagerFactoryImpl
defines non-transient non-serializable instance field connectionLogWriter
appserver/persistence/cmp/utility/src/main/java/com/sun/jdo/spi/persistence/utility/WeakValueHashMap.java:68:
SE_BAD_FIELD: Class com.sun.jdo.spi.persistence.utility.WeakValueHashMap defines
non-transient non-serializable instance field queue
appserver/ejb/ejb-container/src/main/java/com/sun/ejb/containers/util/pool/AbstractPool.java:360:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
AbstractPool.list in futile attempt to guard it
appserver/verifier/verifier-impl/src/main/java/com/sun/enterprise/tools/verifier/tests/webservices/HandlerPortNameCheck.java:78:
BC_IMPOSSIBLE_CAST: Impossible cast from
com.sun.enterprise.deployment.WebServiceHandlerChain to
com.sun.enterprise.deployment.WebServiceHandler in
com.sun.enterprise.tools.verifier.tests.webservices.HandlerPortNameCheck.check(WebServiceEndpoint)
appserver/admingui/common/src/main/java/org/glassfish/admingui/common/tree/ListTreeAdaptor.java:147:
RC_REF_COMPARISON_BAD_PRACTICE: Suspicious comparison of a Integer reference to
constant in
org.glassfish.admingui.common.tree.ListTreeAdaptor.getChildTreeNodeObjects(Object)
appserver/admingui/common/src/main/java/org/glassfish/admingui/common/tree/ListTreeAdaptor.java:324:
RC_REF_COMPARISON_BAD_PRACTICE: Suspicious comparison of a Integer reference to
constant in
org.glassfish.admingui.common.tree.ListTreeAdaptor.getFacets(UIComponent, Object)
appserver/admingui/common/src/main/java/org/glassfish/admingui/common/tree/ListTreeAdaptor.java:214:
RC_REF_COMPARISON_BAD_PRACTICE: Suspicious comparison of a Integer reference to
constant in
org.glassfish.admingui.common.tree.ListTreeAdaptor.getFactoryOptions(Object)
appserver/admingui/common/src/main/java/org/glassfish/admingui/common/tree/ListTreeAdaptor.java:296:
RC_REF_COMPARISON_BAD_PRACTICE: Suspicious comparison of a Integer reference to
constant in org.glassfish.admingui.common.tree.ListTreeAdaptor.getId(Object)
appserver/web/web-glue/src/main/java/com/sun/enterprise/web/VirtualServer.java:157:
SE_BAD_FIELD: Class com.sun.enterprise.web.VirtualServer defines non-transient
non-serializable instance field accessLogValve
appserver/web/web-glue/src/main/java/com/sun/enterprise/web/VirtualServer.java:157:
SE_BAD_FIELD: Class com.sun.enterprise.web.VirtualServer defines non-transient
non-serializable instance field config
appserver/web/web-glue/src/main/java/com/sun/enterprise/web/VirtualServer.java:157:
SE_BAD_FIELD: Class com.sun.enterprise.web.VirtualServer defines non-transient
non-serializable instance field factory
appserver/web/web-glue/src/main/java/com/sun/enterprise/web/VirtualServer.java:157:
SE_BAD_FIELD: Class com.sun.enterprise.web.VirtualServer defines non-transient
non-serializable instance field grizzlyService
appserver/web/web-glue/src/main/java/com/sun/enterprise/web/VirtualServer.java:157:
SE_BAD_FIELD: Class com.sun.enterprise.web.VirtualServer defines non-transient
non-serializable instance field webContainer
appserver/web/web-core/src/main/java/org/apache/catalina/core/ApplicationHttpRequest.java:829:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
ApplicationHttpRequest.parameters in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardContext.java:120:
SE_BAD_FIELD: Class org.apache.catalina.core.StandardContext defines
non-transient non-serializable instance field alternateDocBases
appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardContext.java:120:
SE_BAD_FIELD: Class org.apache.catalina.core.StandardContext defines
non-transient non-serializable instance field filterRegisMap
appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardContext.java:120:
SE_BAD_FIELD: Class org.apache.catalina.core.StandardContext defines
non-transient non-serializable instance field messageDestinations
appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardContext.java:120:
SE_BAD_FIELD: Class org.apache.catalina.core.StandardContext defines
non-transient non-serializable instance field servletRegisMap
appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardServer.java:445:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
StandardServer.services in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardServer.java:633:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
StandardServer.services in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardService.java:322:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
StandardService.connectors in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/catalina/core/StandardService.java:440:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
StandardService.connectors in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/catalina/servlets/DefaultServlet.java:165:
SE_BAD_FIELD: Class org.apache.catalina.servlets.DefaultServlet defines
non-transient non-serializable instance field alternateDocBases
appserver/web/web-core/src/main/java/org/apache/tomcat/util/modeler/ConstructorInfo.java:150:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
ConstructorInfo.parameters in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/tomcat/util/modeler/ManagedBean.java:258:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
ManagedBean.attributes in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/tomcat/util/modeler/ManagedBean.java:277:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
ManagedBean.constructors in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/tomcat/util/modeler/ManagedBean.java:308:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
ManagedBean.notifications in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/tomcat/util/modeler/ManagedBean.java:326:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
ManagedBean.operations in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/tomcat/util/modeler/NotificationInfo.java:135:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
NotificationInfo.notifTypes in futile attempt to guard it
appserver/web/web-core/src/main/java/org/apache/tomcat/util/modeler/OperationInfo.java:223:
ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD: Synchronization on
OperationInfo.parameters in futile attempt to guard it