Hi,
I had an occasion to run FindBugs on the Subclipse codebase. BTW there
is quite acceptable plugin for Eclipse available
http://findbugs.sourceforge.net/
Here is the list of the major issues I believe somehow critical:
next two always false!
BIT: Incompatible bit masks yield a constant result in
org.tigris.subversion.subclipse.core.resources.BaseFolder.members(org.eclipse.core.runtime.IProgressMonitor,int)
BaseFolder.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/resources
line 77
BIT: Incompatible bit masks yield a constant result in
org.tigris.subversion.subclipse.core.resources.RemoteFolder.members(org.eclipse.core.runtime.IProgressMonitor,int)
RemoteFolder.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/resources
line 217
IS2: Inconsistent synchronization of
org.tigris.subversion.subclipse.core.util.ReentrantLock.nestingCount;
locked 83% of time ReentrantLock.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/util
line 74
IS2: Inconsistent synchronization of
org.tigris.subversion.subclipse.core.util.ReentrantLock.thread; locked
71% of time ReentrantLock.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/util
line 78
This one probably has missing curly brackets:
NP: Possible null pointer dereference in
org.tigris.subversion.subclipse.core.commands.CheckoutCommand.refreshProject(org.eclipse.core.resources.IProject,org.eclipse.core.runtime.IProgressMonitor)
CheckoutCommand.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/commands
line 283
memberResource can be null
NP: Possible null pointer dereference in
org.tigris.subversion.subclipse.core.sync.notused.SVNRemoteTree.fetchVariant(org.eclipse.core.resources.IResource,int,org.eclipse.core.runtime.IProgressMonitor)
SVNRemoteTree.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/sync/notused
line 140
if it would be null we have got NPE in above line
RCN: Redundant comparison to null in
org.tigris.subversion.subclipse.core.status.SynchronizerSyncInfoCache.addStatus(org.tigris.subversion.subclipse.core.resources.LocalResourceStatus)
SynchronizerSyncInfoCache.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/status
line 55
Minor issues:
SIC: Should
org.tigris.subversion.subclipse.core.SVNProjectSetCapability$LoadInfo be
a _static_ inner class? SVNProjectSetCapability.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core
line 177
UuF: Unused field:
org.tigris.subversion.subclipse.core.SVNClientManager.adapterFactories
SVNClientManager.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core
line 1
UuF: Unused field:
org.tigris.subversion.subclipse.core.SVNTeamProvider.operations
SVNTeamProvider.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core
line 1
DLS: Dead store to local variable in method
org.tigris.subversion.subclipse.core.resources.LocalResourceStatus.<init>(byte[])
LocalResourceStatus.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/resources
line 198 August 21, 2005 3:35:58 PM
DLS: Dead store to local variable in method
org.tigris.subversion.subclipse.core.resources.RemoteResourceStatus.<init>(byte[])
RemoteResourceStatus.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/resources
line 146
DLS: Dead store to local variable in method
org.tigris.subversion.subclipse.core.resources.ResourceStatus.<init>(byte[])
ResourceStatus.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core/resources
line 266
DLS: Dead store to local variable in method
org.tigris.subversion.subclipse.core.SVNTeamProviderType$AutoAddJob.run(org.eclipse.core.runtime.IProgressMonitor)
SVNTeamProviderType.java
org.tigris.subversion.subclipse.core/src/org/tigris/subversion/subclipse/core
line 211
CD: Class org.tigris.subversion.subclipse.core.resources.LocalResource
has a circular dependency with other classes.
CD: Class org.tigris.subversion.subclipse.core.resources.RemoteResource
has a circular dependency with other classes.
CD: Class
org.tigris.subversion.subclipse.core.resources.RemoteResourceStatus has
a circular dependency with other classes.
CD: Class
org.tigris.subversion.subclipse.core.resources.RepositoryResourcesManager
has a circular dependency with other classes.
CD: Class
org.tigris.subversion.subclipse.core.resources.SVNMoveDeleteHook has a
circular dependency with other classes.
CD: Class
org.tigris.subversion.subclipse.core.resources.SVNWorkspaceRoot has a
circular dependency with other classes.
CD: Class org.tigris.subversion.subclipse.core.status.StatusCacheManager
has a circular dependency with other classes.
CD: Class org.tigris.subversion.subclipse.core.SVNProviderPlugin has a
circular dependency with other classes.
CD: Class org.tigris.subversion.subclipse.core.SVNTeamProvider has a
circular dependency with other classes.
Received on Mon Aug 22 05:56:54 2005