portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Dam (JIRA)" <jetspeed-...@portals.apache.org>
Subject [jira] Updated: (JS2-727) Appy Findbugs patches
Date Sun, 10 Jun 2007 13:30:26 GMT

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

Dennis Dam updated JS2-727:
---------------------------

    Attachment: findbugPatch-comments.txt

Comments on the bugfixed covered by the patch. I marked some issues with the keyword "CHECK":
you might want to check the bugfix, just in case I overlooked something.

> Appy Findbugs patches
> ---------------------
>
>                 Key: JS2-727
>                 URL: https://issues.apache.org/jira/browse/JS2-727
>             Project: Jetspeed 2
>          Issue Type: Bug
>    Affects Versions: 2.1.1
>            Reporter: David Sean Taylor
>            Assignee: David Sean Taylor
>             Fix For: 2.1.1
>
>         Attachments: findbugPatch-comments.txt, findBugs.patch
>
>
> As reported by Dennis Dam on the mailing list, fix the "Findbugs" errors. I don't think
we need a new issue for each bug, so Im listing all here:
> The other day I found a case in a particular class where an argument for a constructor
was actually not used. I found that was really confusing. So I thought: is there not a way
to find these kinds of "bugs" automatically?
> That's how I stumbled upon an open source (LGPL, I think) eclipse plugin which .. finds
bugs for you! It's called 'findbugs' (http://findbugs.sourceforge.net/). Installation instructions
are at http://findbugs.sourceforge.net/manual/eclipse.html.
> It works like this:
> - select project
> - select "find bugs"
> .. and off you go, it finds bugs. In the case of jetspeed it found 566 bugs to be exact,
which it categorizes in degrees of seriousness. 73 are flagged as "high prio ". I attached
these problems in a logfile attached to this mail. I would highly recommend installing that
plugin from what I've seen so far.
> The nastiest bugs I found:
> - nullpointer dereference
> - possible infinite loop
> - comparing strings with the == operator
> These three are in the logfile.
> If anyone knows better plugins, or has suggestions I'm glad to hear about it.
> regards,
> Dennis Dam
> Severity and Description	Path	Resource	Location	Creation Time	Id
> H B ES: Comparison of String parameter using == or != in org.apache.jetspeed.capabilities.impl.CapabilityMapImpl.hasCapability(String)
	jetspeed-2/components/capability/src/java/org/apache/jetspeed/capabilities/impl	CapabilityMapImpl.java
line 185	1180475631635	7871
> H B ES: Comparison of String parameter using == or != in org.apache.jetspeed.capabilities.impl.CapabilityMapImpl.supportsMediaType(String)
	jetspeed-2/components/capability/src/java/org/apache/jetspeed/capabilities/impl	CapabilityMapImpl.java
line 231	1180475631635	7872
> H B ES: Comparison of String parameter using == or != in org.apache.jetspeed.serializer.objects.JSPermission.getClassForType(String)
	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects	JSPermission.java
line 80	1180475633214	8301
> H B HE: org.apache.jetspeed.capabilities.impl.ClientImpl defines equals and uses Object.hashCode()
jetspeed-2/components/capability/src/java/org/apache/jetspeed/capabilities/impl	ClientImpl.java
line 58	1180475631635	7876
> H B HE: org.apache.jetspeed.capabilities.impl.MediaTypeImpl defines equals and uses Object.hashCode()
jetspeed-2/components/capability/src/java/org/apache/jetspeed/capabilities/impl	MediaTypeImpl.java
line 67	1180475631635	7879
> H B HE: org.apache.jetspeed.cluster.NodeInformationImpl defines equals and uses Object.hashCode()
jetspeed-2/components/portal/src/java/org/apache/jetspeed/cluster	NodeInformationImpl.java
line 90	1180475631651	7886
> H B HE: org.apache.jetspeed.components.portletregistry.MutablePortletApplicationProxy
defines equals and uses Object.hashCode()	jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletregistry
MutablePortletApplicationProxy.java	line 30	1180475631823	7912
> H B HE: org.apache.jetspeed.i18n.KeyedMessage defines equals and uses Object.hashCode()
jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/i18n	KeyedMessage.java	line 549	1180475632792
7994
> H B HE: org.apache.jetspeed.portlet.webcontent.WebContentHistoryPage defines equals and
uses Object.hashCode()	jetspeed-2/components/web-content/src/java/org/apache/jetspeed/portlet/webcontent
WebContentHistoryPage.java	line 65	1180475632948	8109
> H B HE: org.apache.jetspeed.portlets.layout.LayoutEvent defines equals and uses Object.hashCode()
jetspeed-2/layout-portlets/src/java/org/apache/jetspeed/portlets/layout	LayoutEvent.java	line
119	1180475632964	8120
> H B HE: org.apache.jetspeed.prefs.om.impl.NodeImpl defines equals and uses Object.hashCode()
jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/om/impl	NodeImpl.java	line
243	1180475633073	8211
> H B HE: org.apache.jetspeed.profiler.rules.impl.RuleCriterionImpl defines equals and
uses Object.hashCode()	jetspeed-2/components/profiler/src/java/org/apache/jetspeed/profiler/rules/impl
RuleCriterionImpl.java	line 56	1180475633104	8216
> H B HE: org.apache.jetspeed.security.om.impl.InternalCredentialImpl defines equals and
uses Object.hashCode()	jetspeed-2/components/security/src/java/org/apache/jetspeed/security/om/impl
InternalCredentialImpl.java	line 359	1180475633136	8243
> H B HE: org.apache.jetspeed.security.om.impl.InternalGroupPrincipalImpl defines equals
and uses Object.hashCode()	jetspeed-2/components/security/src/java/org/apache/jetspeed/security/om/impl
InternalGroupPrincipalImpl.java	line 96	1180475633136	8244
> H B HE: org.apache.jetspeed.security.om.impl.InternalPermissionImpl defines equals and
uses Object.hashCode()	jetspeed-2/components/security/src/java/org/apache/jetspeed/security/om/impl
InternalPermissionImpl.java	line 188	1180475633136	8245
> H B HE: org.apache.jetspeed.security.om.impl.InternalRolePrincipalImpl defines equals
and uses Object.hashCode()	jetspeed-2/components/security/src/java/org/apache/jetspeed/security/om/impl
InternalRolePrincipalImpl.java	line 96	1180475633136	8246
> H B HE: org.apache.jetspeed.security.om.impl.InternalUserPrincipalImpl defines equals
and uses Object.hashCode()	jetspeed-2/components/security/src/java/org/apache/jetspeed/security/om/impl
InternalUserPrincipalImpl.java	line 121	1180475633136	8247
> H B HE: org.apache.jetspeed.statistics.impl.UserStatsImpl defines equals and uses Object.hashCode()
jetspeed-2/components/statistics/src/java/org/apache/jetspeed/statistics/impl	UserStatsImpl.java
line 112	1180475633261	8343
> H B HE: org.apache.jetspeed.util.MimeType defines equals and uses Object.hashCode()	jetspeed-2/components/portal/src/java/org/apache/jetspeed/util
MimeType.java	line 131	1180475633276	8353
> H B HE: org.apache.jetspeed.webapp.logging.IsolatedLog4JLogger defines equals and uses
Object.hashCode()	jetspeed-2/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging
IsolatedLog4JLogger.java	line 180	1180475633292	8370
> H B Se: Class org.apache.jetspeed.om.impl.LanguageSetImpl defines non-transient non-serializable
instance field classLoader	jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/impl
LanguageSetImpl.java	line 46	1180475632886	8040
> H B Se: Class org.apache.jetspeed.om.portlet.impl.PortletApplicationDefinitionImpl defines
non-transient non-serializable instance field oid	jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/portlet/impl
PortletApplicationDefinitionImpl.java	line 64	1180475632901	8059
> H B Se: Class org.apache.jetspeed.om.portlet.impl.PortletDefinitionImpl defines non-transient
non-serializable instance field oid	jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/portlet/impl
PortletDefinitionImpl.java	line 99	1180475632901	8064
> H B Se: Class org.apache.jetspeed.om.portlet.impl.PortletDefinitionImpl defines non-transient
non-serializable instance field preferenceSet	jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/portlet/impl
PortletDefinitionImpl.java	line 133	1180475632901	8065
> H B Se: Class org.apache.jetspeed.om.servlet.impl.WebApplicationDefinitionImpl defines
non-transient non-serializable instance field oid	jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/servlet/impl
WebApplicationDefinitionImpl.java	line 59	1180475632917	8072
> H B Se: Class org.apache.jetspeed.om.window.impl.PortletWindowImpl defines non-transient
non-serializable instance field portletEntity	jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/window/impl
PortletWindowImpl.java	line 41	1180475632917	8075
> H B Se: Class org.apache.jetspeed.security.PolicyWrapper defines non-transient non-serializable
instance field policy	jetspeed-2/components/security/src/java/org/apache/jetspeed/security
PolicyWrapper.java	line 35	1180475633136	8238
> H B Se: The field org.apache.jetspeed.portalsite.impl.PortalSiteSessionContextImpl.folderPageHistory
is transient but isn't set by deserialization	jetspeed-2/components/portal-site/src/java/org/apache/jetspeed/portalsite/impl
PortalSiteSessionContextImpl.java	line 102	1180475632948	8101
> H B Se: The field org.apache.jetspeed.portlet.webcontent.WebContentResource.content is
transient but isn't set by deserialization	jetspeed-2/components/web-content/src/java/org/apache/jetspeed/portlet/webcontent
WebContentResource.java	line 32	1180475632964	8112
> H B Se: The field org.apache.jetspeed.portlets.profiler.ProfileCriterionForm.fallbackTypes
is transient but isn't set by deserialization	jetspeed-2/applications/j2-admin/src/java/org/apache/jetspeed/portlets/profiler
ProfileCriterionForm.java	line 73	1180475632979	8132
> H B Se: The field org.apache.jetspeed.portlets.profiler.ProfileCriterionForm.resolvers
is transient but isn't set by deserialization	jetspeed-2/applications/j2-admin/src/java/org/apache/jetspeed/portlets/profiler
ProfileCriterionForm.java	line 50	1180475632979	8133
> H B Se: The field org.apache.jetspeed.portlets.profiler.ProfileRuleForm.classnames is
transient but isn't set by deserialization	jetspeed-2/applications/j2-admin/src/java/org/apache/jetspeed/portlets/profiler
ProfileRuleForm.java	line 44	1180475632995	8136
> H B Se: The field org.apache.portals.gems.browser.DatabaseBrowserIterator.log is transient
but isn't set by deserialization	jetspeed-2/applications/gems/src/java/org/apache/portals/gems/browser
DatabaseBrowserIterator.java	line 37	1180475633308	8394
> H C EC: Call to equals() comparing unrelated class and interface in org.apache.jetspeed.decoration.DecorationFactoryImpl.getDecoration(Page,
Fragment, RequestContext)	jetspeed-2/components/portal/src/java/org/apache/jetspeed/decoration
DecorationFactoryImpl.java	line 142	1180475632120	7944
> H C EC: Call to equals() comparing unrelated class and interface in org.apache.jetspeed.portlets.rpad.RepositoryConfigHandler.endElement(String,
String, String)	jetspeed-2/applications/j2-admin/src/java/org/apache/jetspeed/portlets/rpad
RepositoryConfigHandler.java	line 129	1180475633011	8158
> H C HE: org.apache.jetspeed.webapp.logging.IsolatedLog4JLogger doesn't define a hashCode()
method but is used in a hashed data structure	jetspeed-2/components/webapp-logging/src/java/org/apache/jetspeed/webapp/logging
IsolatedLog4JLogger.java	line 143	1180475633292	8371
> H C IL: There is an apparent infinite recursive loop in org.apache.jetspeed.om.preference.impl.PrefsPreference.cloneValues()
jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/preference/impl	PrefsPreference.java
line 464	1180475632901	8068
> H C MF: Field GetPortletsAction.log masks field in superclass org.apache.jetspeed.layout.impl.BasePortletAction
jetspeed-2/components/portal/src/java/org/apache/jetspeed/layout/impl	GetPortletsAction.java
line 58	1180475632792	7998
> H C MF: Field TestSSOComponent.gms masks field in superclass org.apache.jetspeed.security.util.test.AbstractSecurityTestcase
jetspeed-2/components/sso/src/test/org/apache/jetspeed/sso	TestSSOComponent.java	line 76	1180475633245
8321
> H C MF: Field TestSSOComponent.ums masks field in superclass org.apache.jetspeed.security.util.test.AbstractSecurityTestcase
jetspeed-2/components/sso/src/test/org/apache/jetspeed/sso	TestSSOComponent.java	line 73	1180475633245
8322
> H C Nm: VERY confusing to have methods org.apache.jetspeed.om.page.TestPageObjectModel.setup()
and junit.framework.TestCase.setUp()	jetspeed-2/components/page-manager/src/test/org/apache/jetspeed/om/page
TestPageObjectModel.java	line 60	1180475632886	8045
> H C NP: ? could be null and is guaranteed to be dereferenced in org.apache.jetspeed.locator.JetspeedTemplateLocator.locateTemplate(LocatorDescriptor,
String)	jetspeed-2/components/locator/src/java/org/apache/jetspeed/locator	JetspeedTemplateLocator.java
line 212	1180475632854	8010
> H C NP: Null pointer dereference of pa in org.apache.jetspeed.portlets.palm.PortletApplicationLifecycleManager.processAction(ActionRequest,
ActionResponse)	jetspeed-2/applications/j2-admin/src/java/org/apache/jetspeed/portlets/palm
PortletApplicationLifecycleManager.java	line 121	1180475632964	8125
> H C RCN: Nullcheck of document at line 505 of value previously dereferenced in org.apache.jetspeed.page.document.psml.CastorFileSystemDocumentHandler.unmarshallDocument(Class,
String, String)	jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/document/psml
CastorFileSystemDocumentHandler.java	line 466	1180475632932	8088
> H C UMAC: Uncallable method org.apache.jetspeed.serializer.objects.JSNVPElement$1.isReferencable()
defined in anonymous class	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects
JSNVPElement.java	line 1	1180475633214	8300
> H D DLS: Dead store to applicationScopeAttribute in org.apache.jetspeed.demo.simple.AttributeScopeServlet.processAction(ActionRequest,
ActionResponse)	jetspeed-2/applications/demo/src/java/org/apache/jetspeed/demo/simple	AttributeScopeServlet.java
line 120	1180475632464	7950
> H D DLS: Dead store to lastGuess in org.apache.jetspeed.demo.simple.PickANumberPortlet.doView(RenderRequest,
RenderResponse)	jetspeed-2/applications/demo/src/java/org/apache/jetspeed/demo/simple	PickANumberPortlet.java
line 151	1180475632526	7958
> H D ST: Write to static field org.apache.jetspeed.components.portletentity.PortletEntityImpl.pac
from instance method org.apache.jetspeed.components.portletentity.PersistenceBrokerPortletEntityAccess.setEntityAccessProxy(PortletEntityAccessComponent)
jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletentity	PersistenceBrokerPortletEntityAccess.java
line 102	1180475631651	7900
> H D ST: Write to static field org.apache.jetspeed.components.portletentity.PortletEntityImpl.rcc
from instance method org.apache.jetspeed.components.portletentity.PersistenceBrokerPortletEntityAccess.PersistenceBrokerPortletEntityAccess(PortletRegistry,
RequestContextComponent, boolean)	jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletentity
PersistenceBrokerPortletEntityAccess.java	line 96	1180475631651	7898
> H D ST: Write to static field org.apache.jetspeed.components.portletentity.PortletEntityImpl.rcc
from instance method org.apache.jetspeed.components.portletentity.PersistenceBrokerPortletEntityAccess.PersistenceBrokerPortletEntityAccess(PortletRegistry,
RequestContextComponent)	jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletentity
PersistenceBrokerPortletEntityAccess.java	line 88	1180475631651	7896
> H D ST: Write to static field org.apache.jetspeed.components.portletentity.PortletEntityImpl.registry
from instance method org.apache.jetspeed.components.portletentity.PersistenceBrokerPortletEntityAccess.PersistenceBrokerPortletEntityAccess(PortletRegistry,
RequestContextComponent, boolean)	jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletentity
PersistenceBrokerPortletEntityAccess.java	line 95	1180475631651	7899
> H D ST: Write to static field org.apache.jetspeed.components.portletentity.PortletEntityImpl.registry
from instance method org.apache.jetspeed.components.portletentity.PersistenceBrokerPortletEntityAccess.PersistenceBrokerPortletEntityAccess(PortletRegistry,
RequestContextComponent)	jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletentity
PersistenceBrokerPortletEntityAccess.java	line 87	1180475631651	7897
> H D ST: Write to static field org.apache.jetspeed.components.portletentity.PortletEntityImpl.registry
from instance method org.apache.jetspeed.components.portletentity.PersistenceBrokerPortletEntityAccess.PersistenceBrokerPortletEntityAccess(PortletRegistry)
jetspeed-2/components/registry/src/java/org/apache/jetspeed/components/portletentity	PersistenceBrokerPortletEntityAccess.java
line 80	1180475631651	7895
> H D ST: Write to static field org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.prefsProvider
from instance method org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.setPrefsProvider(PreferencesProvider)
jetspeed-2/components/prefs/src/java/org/apache/jetspeed/prefs/impl	PreferencesFactoryImpl.java
line 97	1180475633073	8207
> H D ST: Write to static field org.apache.jetspeed.security.impl.LoginModuleProxyImpl.loginModuleProxy
from instance method org.apache.jetspeed.security.impl.LoginModuleProxyImpl.LoginModuleProxyImpl(UserManager,
String)	jetspeed-2/components/security/src/java/org/apache/jetspeed/security/impl	LoginModuleProxyImpl.java
line 59	1180475633136	8239
> H D ST: Write to static field org.apache.jetspeed.services.JetspeedPortletServices.singleton
from instance method org.apache.jetspeed.services.JetspeedPortletServices.JetspeedPortletServices(Map)
jetspeed-2/commons/src/java/org/apache/jetspeed/services	JetspeedPortletServices.java	line
50	1180475633229	8314
> H D ST: Write to static field org.apache.jetspeed.sso.TestSSOComponent.ssoBroker from
instance method org.apache.jetspeed.sso.TestSSOComponent.setUp()	jetspeed-2/components/sso/src/test/org/apache/jetspeed/sso
TestSSOComponent.java	line 87	1180475633245	8323
> H P Dm: org.apache.jetspeed.engine.JetspeedEngine.shutdown() forces garbage collection;
extremely dubious except in benchmarking code	jetspeed-2/components/portal/src/java/org/apache/jetspeed/engine
JetspeedEngine.java	line 174	1180475632667	7975
> H V MS: org.apache.jetspeed.om.folder.psml.FolderMetaDataImpl.DOCUMENT_TYPE isn't final
but should be	jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/om/folder/psml
FolderMetaDataImpl.java	line 41	1180475632886	8036
> H V MS: org.apache.jetspeed.page.impl.DatabasePageManagerCache.transactionedOperations
isn't final but should be	jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page/impl
DatabasePageManagerCache.java	line 428	1180475632932	8093
> H V MS: org.apache.jetspeed.page.PageManagerUtils.log isn't final but should be	jetspeed-2/components/page-manager/src/java/org/apache/jetspeed/page
PageManagerUtils.java	line 46	1180475632932	8083
> H V MS: org.apache.jetspeed.security.spi.impl.PasswordHistoryInterceptor.HISTORICAL_PASSWORD_CREDENTIAL
isn't final but should be	jetspeed-2/components/security/src/java/org/apache/jetspeed/security/spi/impl
PasswordHistoryInterceptor.java	line 58	1180475633136	8249
> H V MS: org.apache.jetspeed.serializer.objects.JSPermission.TYPE_FOLDER isn't final but
should be	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects
JSPermission.java	line 63	1180475633214	8302
> H V MS: org.apache.jetspeed.serializer.objects.JSPermission.TYPE_FRAGMENT isn't final
but should be	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects
JSPermission.java	line 65	1180475633214	8303
> H V MS: org.apache.jetspeed.serializer.objects.JSPermission.TYPE_PAGE isn't final but
should be	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects
JSPermission.java	line 67	1180475633214	8304
> H V MS: org.apache.jetspeed.serializer.objects.JSPermission.TYPE_PORTAL isn't final but
should be	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects
JSPermission.java	line 74	1180475633214	8305
> H V MS: org.apache.jetspeed.serializer.objects.JSPermission.TYPE_PORTALRESOURCE isn't
final but should be	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects
JSPermission.java	line 69	1180475633214	8306
> H V MS: org.apache.jetspeed.serializer.objects.JSPermission.TYPE_PORTALRESOURCECOLLECTION
isn't final but should be	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects
JSPermission.java	line 71	1180475633214	8307
> H V MS: org.apache.jetspeed.serializer.objects.JSPermission.TYPE_UNKNOWN isn't final
but should be	jetspeed-2/components/serializer/src/java/org/apache/jetspeed/serializer/objects
JSPermission.java	line 76	1180475633214	8308
> H V MS: org.apache.portals.gems.util.ValidationHelper.AMERICAN_DATE_FORMAT isn't final
but should be	jetspeed-2/applications/gems/src/java/org/apache/portals/gems/util	ValidationHelper.java
line 35	1180475633308	8399
> H V MS: org.apache.portals.gems.util.ValidationHelper.AMERICAN_DATETIME_FORMAT isn't
final but should be	jetspeed-2/applications/gems/src/java/org/apache/portals/gems/util	ValidationHelper.java
line 36	1180475633308	8398
> H V MS: org.apache.portals.gems.util.ValidationHelper.EUROPEAN_DATE_FORMAT isn't final
but should be	jetspeed-2/applications/gems/src/java/org/apache/portals/gems/util	ValidationHelper.java
line 33	1180475633308	8401
> H V MS: org.apache.portals.gems.util.ValidationHelper.EUROPEAN_DATETIME_FORMAT isn't
final but should be	jetspeed-2/applications/gems/src/java/org/apache/portals/gems/util	ValidationHelper.java
line 34	1180475633308	8400

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message