[Yanel-dev] Running FindBugs on Yanel Source

Michael Wechner michael.wechner at wyona.com
Thu Dec 9 11:48:56 CET 2010


Hi

A colleague of mine recently pointed out to me that when running =

FindBugs (http://findbugs.sourceforge.net/) on Yanel source one receives:

C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/attributes/translatab=
le/DefaultTranslationManager.java:226 =

Method =

org.wyona.yanel.core.attributes.translatable.DefaultTranslationManager.debu=
g() =

makes inefficient use of keySet iterator instead of entrySet iterator
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/map/RealmWithConfigur=
ationExceptionImpl.java:91 =

Self assignment of field RealmWithConfigurationExceptionImpl.name
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/IdentityMap.=
java:18 =

Method org.wyona.yanel.servlet.IdentityMap.toString() makes inefficient =

use of keySet iterator instead of entrySet iterator
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/source/RTabstractReso=
lver.java:86 =

Possible null pointer dereference of url
C:/dev/yanel/yanel/src/impl/java/org/wyona/yanel/impl/resources/usecase/Use=
caseResource.java:175 =

Exception is caught when Exception is not thrown
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/ResourceConfiguration=
.java:147 =

Method org.wyona.yanel.core.ResourceConfiguration.load(InputStream) =

makes inefficient use of keySet iterator instead of entrySet iterator
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/attributes/translatab=
le/DefaultTranslationManager.java:267 =

Should =

org.wyona.yanel.core.attributes.translatable.DefaultTranslationManager$Page =

be a _static_ inner class?
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/attributes/translatab=
le/DefaultTranslationManager.java:199 =

Method =

org.wyona.yanel.core.attributes.translatable.DefaultTranslationManager.save=
() =

makes inefficient use of keySet iterator instead of entrySet iterator
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/attributes/translatab=
le/DefaultTranslationManager.java:251 =

Should =

org.wyona.yanel.core.attributes.translatable.DefaultTranslationManager$Lang=
uageVersion =

be a _static_ inner class?
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/Path.java:1 The =

class name org.wyona.yanel.core.Path shadows the simple name of the =

superclass org.wyona.yarep.core.Path
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/util/VersioningUtil.j=
ava:41 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.VersionableV2
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/ResourceTypeRegistry.=
java:209 =

Exception is caught when Exception is not thrown
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/ResourceTypeRegistry.=
java:66 =

Write to static field =

org.wyona.yanel.core.ResourceTypeRegistry.CONFIGURATION_FILE from =

instance method new org.wyona.yanel.core.ResourceTypeRegistry(String)
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelp=
er.java:154 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.WorkflowableV1
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelp=
er.java:157 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.VersionableV2
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/map/RealmConfigPathRe=
solver.java:56 =

org.wyona.yanel.core.map.RealmConfigPathResolver.resolve(String, String) =

forgets to throw new javax.xml.transform.TransformerException(String)
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelp=
er.java:117 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.WorkflowableV1
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelp=
er.java:119 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.VersionableV2
C:/dev/yanel/yanel/src/impl/java/org/wyona/yanel/impl/navigation/SitetreeDO=
MImpl.java:152 =

Method =

org.wyona.yanel.impl.navigation.SitetreeDOMImpl.getElement(Element, =

String) concatenates strings using + in a loop
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelp=
er.java:142 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.WorkflowableV1
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelp=
er.java:212 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.WorkflowableV1
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelp=
er.java:211 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.VersionableV2
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/communication/Command=
LineRequest.java:155 =

Invocation of toString on java.util.HashMap.get(Object)
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelp=
er.java:57 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.WorkflowableV1
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/communication/Command=
LineRequest.java:47 =

Should =

org.wyona.yanel.cmdl.communication.CommandLineRequest$ParameterNames be =

a _static_ inner class?
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelHTMLUI.=
java:101 =

org.wyona.yanel.servlet.YanelHTMLUI.getYanelToolbar(Resource) forgets to =

throw new ClassCastException(String)
C:/dev/yanel/yanel/src/impl/java/org/wyona/yanel/impl/workflow/RoleConditio=
n.java:46 =

Unchecked/unconfirmed cast from =

org.wyona.yanel.core.api.attributes.WorkflowableV1 to =

org.wyona.yanel.core.Resource
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/util/PathUtil.java:1 =

The class name org.wyona.yanel.core.util.PathUtil shadows the simple =

name of the superclass org.wyona.commons.io.PathUtil
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:1092 =

Primitive value is boxed and then immediately unboxed
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:1511 =

Dead store to catalogResolver
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:180 =

org.wyona.yanel.servlet.YanelServlet.init(ServletConfig) invokes =

inefficient Boolean constructor; use Boolean.valueOf(...) instead
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:1894 =

Possible null pointer dereference of mimeType
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:1092 =

Method =

org.wyona.yanel.servlet.YanelServlet.doAccessControl(HttpServletRequest, =

HttpServletResponse) invokes inefficient new Integer(int) constructor; =

use Integer.valueOf(int) instead
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:130 =

Class org.wyona.yanel.servlet.YanelServlet defines non-transient =

non-serializable instance field yanelUI
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:105 =

Class org.wyona.yanel.servlet.YanelServlet defines non-transient =

non-serializable instance field yanelInstance
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:1924 =

Method org.wyona.yanel.servlet.YanelServlet.generateResponse(View, =

Resource, HttpServletRequest, HttpServletResponse, Document, long, long) =

makes inefficient use of keySet iterator instead of entrySet iterator
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/POP.java:10 Unread =

field: org.wyona.yanel.cmdl.POP.password
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:2467 =

Dead store to notVersionableElement
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:2464 =

Dead store to noRevisionsYetElement
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/POP.java:8 Unread =

field: org.wyona.yanel.cmdl.POP.server
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:2399 =

Dead store to requestURL
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/POP.java:11 Unread =

field: org.wyona.yanel.cmdl.POP.path
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:305 =

Dead store to session
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:1391 =

Dead store to neutronVersions
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/POP.java:9 Unread =

field: org.wyona.yanel.cmdl.POP.username
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:2374 =

Dead store to user
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/util/ConfigurationUti=
l.java:49 =

Possible null pointer dereference of repoConfigElement
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/i18n/XMLMessageProvid=
er.java:91 =

Should org.wyona.yanel.core.i18n.XMLMessageProvider$ConfigurationHandler =

be a _static_ inner class?
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:229 =

Dead store to httpAcceptLanguage
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet=
.java:2339 =

Dead store to userManagerElement
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/YanelCommandLine.java=
:83 =

Dereference of the result of readLine() without nullcheck
C:/dev/yanel/yanel/src/impl/java/org/wyona/yanel/impl/resources/usecase/thr=
ead/UsecaseThread.java:122 =

org.wyona.yanel.impl.resources.usecase.thread.UsecaseThread.getThreadFromRe=
pository(Repository, =

String, String) may fail to close stream
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/map/RealmManagerConfi=
g.java:88 =

Exception is caught when Exception is not thrown
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/map/RealmManagerConfi=
g.java:70 =

org.wyona.yanel.core.map.RealmManagerConfig.getRealmContextConfigs(File) =

invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/Re=
visionsWorkflowMenuItem.java:36 =

Unchecked/unconfirmed cast from org.wyona.yanel.core.Resource to =

org.wyona.yanel.core.api.attributes.VersionableV2
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/transformation/I18nTr=
ansformer.java:100 =

Self comparison of I18nTransformer.cachedEname with itself
C:/dev/yanel/yanel/src/webapp/src/java/org/wyona/yanel/servlet/AccessLog.ja=
va:61 =

Load of known null value
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/transformation/I18nTr=
ansformer.java:141 =

Method =

org.wyona.yanel.core.transformation.I18nTransformer.replaceAmpersand(String=
) =

concatenates strings using + in a loop
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/YanelCommandLine.java=
:144 =

Invocation of toString on =

org.wyona.yanel.core.api.attributes.CreatableV1.getPropertyNames()
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/YanelCommandLine.java=
:152 =

Invocation of toString on =

org.wyona.yanel.core.api.attributes.ViewableV1.getViewDescriptors()
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/core/map/RealmManager.java=
:93 =

Method org.wyona.yanel.core.map.RealmManager.getRealmsConfigFile(String) =

makes inefficient use of keySet iterator instead of entrySet iterator
C:/dev/yanel/yanel/src/core/java/org/wyona/yanel/cmdl/YanelCommandLine.java=
:174 =

Dead store to reader

Feel free to improve ;-)

Thanks

Michael
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.wyona.org/pipermail/yanel-development/attachments/2010120=
9/0ebd7c08/attachment.htm


More information about the Yanel-development mailing list