[ 
https://issues.apache.org/jira/browse/HADOOP-14316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15975188#comment-15975188
 ] 

Allen Wittenauer commented on HADOOP-14316:
-------------------------------------------

|    Reason | Tests|
| FindBugs  |  module:hadoop-common-project/hadoop-minikdc |
|           |  Possible null pointer dereference in 
org.apache.hadoop.minikdc.MiniKdc.delete(File) due to return value of called 
method Dereferenced at 
MiniKdc.java:org.apache.hadoop.minikdc.MiniKdc.delete(File) due to return value 
of called method Dereferenced at MiniKdc.java:[line 368] |
| FindBugs  |  module:hadoop-common-project/hadoop-auth |
|           |  
org.apache.hadoop.security.authentication.server.MultiSchemeAuthenticationHandler.authenticate(HttpServletRequest,
 HttpServletResponse) makes inefficient use of keySet iterator instead of 
entrySet iterator At MultiSchemeAuthenticationHandler.java:of keySet iterator 
instead of entrySet iterator At MultiSchemeAuthenticationHandler.java:[line 
192] |
| FindBugs  |  module:hadoop-common-project/hadoop-common |
|           |  org.apache.hadoop.crypto.CipherSuite.setUnknownValue(int) 
unconditionally sets the field unknownValue At CipherSuite.java:unknownValue At 
CipherSuite.java:[line 44] |
|           |  
org.apache.hadoop.crypto.CryptoProtocolVersion.setUnknownValue(int) 
unconditionally sets the field unknownValue At 
CryptoProtocolVersion.java:unknownValue At CryptoProtocolVersion.java:[line 67] 
|
|           |  Possible null pointer dereference in 
org.apache.hadoop.fs.FileUtil.fullyDeleteOnExit(File) due to return value of 
called method Dereferenced at 
FileUtil.java:org.apache.hadoop.fs.FileUtil.fullyDeleteOnExit(File) due to 
return value of called method Dereferenced at FileUtil.java:[line 118] |
|           |  Possible null pointer dereference in 
org.apache.hadoop.fs.RawLocalFileSystem.handleEmptyDstDirectoryOnWindows(Path, 
File, Path, File) due to return value of called method Dereferenced at 
RawLocalFileSystem.java:org.apache.hadoop.fs.RawLocalFileSystem.handleEmptyDstDirectoryOnWindows(Path,
 File, Path, File) due to return value of called method Dereferenced at 
RawLocalFileSystem.java:[line 387] |
|           |  Return value of 
org.apache.hadoop.fs.permission.FsAction.or(FsAction) ignored, but method has 
no side effect At FTPFileSystem.java:but method has no side effect At 
FTPFileSystem.java:[line 421] |
|           |  Useless condition:lazyPersist == true at this point At 
CommandWithDestination.java:[line 502] |
|           |  org.apache.hadoop.io.DoubleWritable.compareTo(DoubleWritable) 
incorrectly handles double value At DoubleWritable.java: At 
DoubleWritable.java:[line 78] |
|           |  org.apache.hadoop.io.DoubleWritable$Comparator.compare(byte[], 
int, int, byte[], int, int) incorrectly handles double value At 
DoubleWritable.java:int) incorrectly handles double value At 
DoubleWritable.java:[line 97] |
|           |  org.apache.hadoop.io.FloatWritable.compareTo(FloatWritable) 
incorrectly handles float value At FloatWritable.java: At 
FloatWritable.java:[line 71] |
|           |  org.apache.hadoop.io.FloatWritable$Comparator.compare(byte[], 
int, int, byte[], int, int) incorrectly handles float value At 
FloatWritable.java:int) incorrectly handles float value At 
FloatWritable.java:[line 89] |
|           |  Possible null pointer dereference in 
org.apache.hadoop.io.IOUtils.listDirectory(File, FilenameFilter) due to return 
value of called method Dereferenced at 
IOUtils.java:org.apache.hadoop.io.IOUtils.listDirectory(File, FilenameFilter) 
due to return value of called method Dereferenced at IOUtils.java:[line 350] |
|           |  org.apache.hadoop.io.erasurecode.ECSchema.toString() makes 
inefficient use of keySet iterator instead of entrySet iterator At 
ECSchema.java:keySet iterator instead of entrySet iterator At 
ECSchema.java:[line 191] |
|           |  Possible bad parsing of shift operation in 
org.apache.hadoop.io.file.tfile.Utils$Version.hashCode() At 
Utils.java:operation in 
org.apache.hadoop.io.file.tfile.Utils$Version.hashCode() At Utils.java:[line 
398] |
|           |  
org.apache.hadoop.metrics2.lib.DefaultMetricsFactory.setInstance(MutableMetricsFactory)
 unconditionally sets the field mmfImpl At DefaultMetricsFactory.java:mmfImpl 
At DefaultMetricsFactory.java:[line 49] |
|           |  
org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.setMiniClusterMode(boolean) 
unconditionally sets the field miniClusterMode At 
DefaultMetricsSystem.java:miniClusterMode At DefaultMetricsSystem.java:[line 
100] |
|           |  Useless object stored in variable seqOs of method 
org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.addOrUpdateToken(AbstractDelegationTokenIdentifier,
 AbstractDelegationTokenSecretManager$DelegationTokenInformation, boolean) At 
ZKDelegationTokenSecretManager.java:seqOs of method 
org.apache.hadoop.security.token.delegation.ZKDelegationTokenSecretManager.addOrUpdateToken(AbstractDelegationTokenIdentifier,
 AbstractDelegationTokenSecretManager$DelegationTokenInformation, boolean) At 
ZKDelegationTokenSecretManager.java:[line 886] |
|           |  Bad comparison of nonnegative value with 0 in 
org.apache.hadoop.tracing.TraceAdmin.run(String[]) At TraceAdmin.java:with 0 in 
org.apache.hadoop.tracing.TraceAdmin.run(String[]) At TraceAdmin.java:[line 
169] |
| FindBugs  |  module:hadoop-hdfs-project/hadoop-hdfs-client |
|           |  Possible exposure of partially initialized object in 
org.apache.hadoop.hdfs.DFSClient.initThreadsNumForStripedReads(int) At 
DFSClient.java:object in 
org.apache.hadoop.hdfs.DFSClient.initThreadsNumForStripedReads(int) At 
DFSClient.java:[line 2856] |
|           |  
org.apache.hadoop.hdfs.server.protocol.SlowDiskReports.equals(Object) makes 
inefficient use of keySet iterator instead of entrySet iterator At 
SlowDiskReports.java:keySet iterator instead of entrySet iterator At 
SlowDiskReports.java:[line 105] |
| FindBugs  |  module:hadoop-hdfs-project/hadoop-hdfs |
|           |  Possible null pointer dereference in 
org.apache.hadoop.hdfs.qjournal.server.JournalNode.getJournalsStatus() due to 
return value of called method Dereferenced at 
JournalNode.java:org.apache.hadoop.hdfs.qjournal.server.JournalNode.getJournalsStatus()
 due to return value of called method Dereferenced at JournalNode.java:[line 
300] |
|           |  
org.apache.hadoop.hdfs.server.common.HdfsServerConstants$StartupOption.setClusterId(String)
 unconditionally sets the field clusterId At HdfsServerConstants.java:clusterId 
At HdfsServerConstants.java:[line 193] |
|           |  
org.apache.hadoop.hdfs.server.common.HdfsServerConstants$StartupOption.setForce(int)
 unconditionally sets the field force At HdfsServerConstants.java:force At 
HdfsServerConstants.java:[line 217] |
|           |  
org.apache.hadoop.hdfs.server.common.HdfsServerConstants$StartupOption.setForceFormat(boolean)
 unconditionally sets the field isForceFormat At 
HdfsServerConstants.java:isForceFormat At HdfsServerConstants.java:[line 229] |
|           |  
org.apache.hadoop.hdfs.server.common.HdfsServerConstants$StartupOption.setInteractiveFormat(boolean)
 unconditionally sets the field isInteractiveFormat At 
HdfsServerConstants.java:isInteractiveFormat At HdfsServerConstants.java:[line 
237] |
|           |  Possible null pointer dereference in 
org.apache.hadoop.hdfs.server.datanode.DataStorage.linkBlocksHelper(File, File, 
int, HardLink, boolean, File, List) due to return value of called method 
Dereferenced at 
DataStorage.java:org.apache.hadoop.hdfs.server.datanode.DataStorage.linkBlocksHelper(File,
 File, int, HardLink, boolean, File, List) due to return value of called method 
Dereferenced at DataStorage.java:[line 1333] |
|           |  Possible null pointer dereference in 
org.apache.hadoop.hdfs.server.namenode.NNStorageRetentionManager.purgeOldLegacyOIVImages(String,
 long) due to return value of called method Dereferenced at 
NNStorageRetentionManager.java:org.apache.hadoop.hdfs.server.namenode.NNStorageRetentionManager.purgeOldLegacyOIVImages(String,
 long) due to return value of called method Dereferenced at 
NNStorageRetentionManager.java:[line 258] |
|           |  Possible null pointer dereference in 
org.apache.hadoop.hdfs.server.namenode.NNUpgradeUtil$1.visitFile(Path, 
BasicFileAttributes) due to return value of called method Dereferenced at 
NNUpgradeUtil.java:org.apache.hadoop.hdfs.server.namenode.NNUpgradeUtil$1.visitFile(Path,
 BasicFileAttributes) due to return value of called method Dereferenced at 
NNUpgradeUtil.java:[line 133] |
|           |  Useless condition:argv.length >= 1 at this point At 
DFSAdmin.java:[line 2010] |
|           |  Useless condition:numBlocks == -1 at this point At 
ImageLoaderCurrent.java:[line 727] |
| FindBugs  |  module:hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common |
|           |  Possible null pointer dereference in 
org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat$LogValue.getPendingLogFilesToUpload(File)
 due to return value of called method Method invoked at 
AggregatedLogFormat.java:org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat$LogValue.getPendingLogFilesToUpload(File)
 due to return value of called method Method invoked at 
AggregatedLogFormat.java:[line 314] |
|           |  Possible null pointer dereference in 
org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.getProcessList() due to 
return value of called method Dereferenced at 
ProcfsBasedProcessTree.java:org.apache.hadoop.yarn.util.ProcfsBasedProcessTree.getProcessList()
 due to return value of called method Dereferenced at 
ProcfsBasedProcessTree.java:[line 499] |
| FindBugs  |  
module:hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager
 |
|           |  Useless object stored in variable removedNullContainers of 
method 
org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.removeOrTrackCompletedContainersFromContext(List)
 At NodeStatusUpdaterImpl.java:removedNullContainers of method 
org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.removeOrTrackCompletedContainersFromContext(List)
 At NodeStatusUpdaterImpl.java:[line 644] |
|           |  
org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl.removeVeryOldStoppedContainersFromCache()
 makes inefficient use of keySet iterator instead of entrySet iterator At 
NodeStatusUpdaterImpl.java:keySet iterator instead of entrySet iterator At 
NodeStatusUpdaterImpl.java:[line 721] |
|           |  Hard coded reference to an absolute pathname in 
org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.runtime.DockerLinuxContainerRuntime.launchContainer(ContainerRuntimeContext)
 At DockerLinuxContainerRuntime.java:absolute pathname in 
org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.runtime.DockerLinuxContainerRuntime.launchContainer(ContainerRuntimeContext)
 At DockerLinuxContainerRuntime.java:[line 455] |
|           |  
org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer.createStatus()
 makes inefficient use of keySet iterator instead of entrySet iterator At 
ContainerLocalizer.java:keySet iterator instead of entrySet iterator At 
ContainerLocalizer.java:[line 334] |
|           |  
org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainerMetrics.usageMetrics
 is a mutable collection which should be package protected At 
ContainerMetrics.java:which should be package protected At 
ContainerMetrics.java:[line 134] |
| FindBugs  |  
module:hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice
 |
|           |  Possible null pointer dereference in 
org.apache.hadoop.yarn.server.timelineservice.storage.FileSystemTimelineReaderImpl.getEntities(File,
 String, TimelineEntityFilters, TimelineDataToRetrieve) due to return value of 
called method Dereferenced at 
FileSystemTimelineReaderImpl.java:org.apache.hadoop.yarn.server.timelineservice.storage.FileSystemTimelineReaderImpl.getEntities(File,
 String, TimelineEntityFilters, TimelineDataToRetrieve) due to return value of 
called method Dereferenced at FileSystemTimelineReaderImpl.java:[line 281] |
| FindBugs  |  
module:hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager
 |
|           |  
org.apache.hadoop.yarn.server.resourcemanager.ApplicationMasterService.EMPTY_CONTAINER_LIST
 is a mutable collection which should be package protected At 
ApplicationMasterService.java:which should be package protected At 
ApplicationMasterService.java:[line 396] |
|           |  
org.apache.hadoop.yarn.server.resourcemanager.monitor.capacity.ProportionalCapacityPreemptionPolicy.cleanupStaledPreemptionCandidates(long)
 makes inefficient use of keySet iterator instead of entrySet iterator At 
ProportionalCapacityPreemptionPolicy.java:keySet iterator instead of entrySet 
iterator At ProportionalCapacityPreemptionPolicy.java:[line 315] |
|           |  
org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptImpl.transferStateFromAttempt(RMAppAttempt)
 makes inefficient use of keySet iterator instead of entrySet iterator At 
RMAppAttemptImpl.java:keySet iterator instead of entrySet iterator At 
RMAppAttemptImpl.java:[line 1005] |
|           |  
org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler.EMPTY_CONTAINER_LIST
 is a mutable collection which should be package protected At 
AbstractYarnScheduler.java:which should be package protected At 
AbstractYarnScheduler.java:[line 135] |
|           |  
org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType.index field is 
public and mutable In NodeType.java:mutable In NodeType.java |
|           |  
org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics.queueMetrics
 is a mutable collection At QueueMetrics.java: At QueueMetrics.java:[line 151] |
|           |  
org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacitySchedulerQueueManager$1.compare(CSQueue,
 CSQueue) incorrectly handles float value At 
CapacitySchedulerQueueManager.java:value At 
CapacitySchedulerQueueManager.java:[line 74] |
|           |  
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode.cleanupPreemptionList()
 makes inefficient use of keySet iterator instead of entrySet iterator At 
FSSchedulerNode.java:keySet iterator instead of entrySet iterator At 
FSSchedulerNode.java:[line 165] |
| FindBugs  |  module:hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client |
|           |  Possible exposure of partially initialized object in 
org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.getTimelineDelegationToken()
 At YarnClientImpl.java:object in 
org.apache.hadoop.yarn.client.api.impl.YarnClientImpl.getTimelineDelegationToken()
 At YarnClientImpl.java:[line 371] |
|           |  Useless condition:isAppFinished == false at this point At 
LogsCLI.java:[line 999] |
| FindBugs  |  
module:hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core
 |
|           |  Primitive is boxed to call 
Long.compareTo(Long):Long.compareTo(Long): use Long.compare(long, long) instead 
At JVMId.java:[line 101] |
|           |  org.apache.hadoop.mapred.Operation.jobACLNeeded field is public 
and mutable In Operation.java:mutable In Operation.java |
|           |  org.apache.hadoop.mapred.Operation.qACLNeeded field is public 
and mutable In Operation.java:mutable In Operation.java |
| FindBugs  |  
module:hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app
 |
|           |  Possible null pointer dereference in new 
org.apache.hadoop.mapred.LocalContainerLauncher(AppContext, 
TaskUmbilicalProtocol, ClassLoader) due to return value of called method 
Dereferenced at LocalContainerLauncher.java:new 
org.apache.hadoop.mapred.LocalContainerLauncher(AppContext, 
TaskUmbilicalProtocol, ClassLoader) due to return value of called method 
Dereferenced at LocalContainerLauncher.java:[line 124] |
|           |  Possible null pointer dereference in 
org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.relocalize() due 
to return value of called method Dereferenced at 
LocalContainerLauncher.java:org.apache.hadoop.mapred.LocalContainerLauncher$EventHandler.relocalize()
 due to return value of called method Dereferenced at 
LocalContainerLauncher.java:[line 524] |
|           |  Possible null pointer dereference in 
org.apache.hadoop.mapreduce.v2.app.MRAppMaster.isJobNamePatternMatch(JobConf, 
String) due to return value of called method Dereferenced at 
MRAppMaster.java:org.apache.hadoop.mapreduce.v2.app.MRAppMaster.isJobNamePatternMatch(JobConf,
 String) due to return value of called method Dereferenced at 
MRAppMaster.java:[line 577] |
| FindBugs  |  
module:hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs
 |
|           |  Useless object stored in variable paths of method 
org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager$HistoryFileInfo.moveToDone()
 At HistoryFileManager.java:paths of method 
org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager$HistoryFileInfo.moveToDone()
 At HistoryFileManager.java:[line 410] |
| FindBugs  |  module:hadoop-mapreduce-project/hadoop-mapreduce-examples |
|           |  Possible null pointer dereference in 
org.apache.hadoop.examples.pi.Parser.parse(File, Map) due to return value of 
called method Dereferenced at 
Parser.java:org.apache.hadoop.examples.pi.Parser.parse(File, Map) due to return 
value of called method Dereferenced at Parser.java:[line 70] |
| FindBugs  |  module:hadoop-tools/hadoop-rumen |
|           |  Return value of new 
org.apache.hadoop.tools.rumen.datatypes.DefaultDataType(String) ignored, but 
method has no side effect At MapReduceJobPropertiesParser.java:ignored, but 
method has no side effect At MapReduceJobPropertiesParser.java:[line 211] |
| FindBugs  |  module:hadoop-tools/hadoop-gridmix |
|           |  
org.apache.hadoop.mapred.gridmix.InputStriper$1.compare(Map$Entry, Map$Entry) 
incorrectly handles double value At InputStriper.java:value At 
InputStriper.java:[line 136] |
|           |  
org.apache.hadoop.mapred.gridmix.emulators.resourceusage.TotalHeapUsageEmulatorPlugin$DefaultHeapUsageEmulator.heapSpace
 is a mutable collection which should be package protected At 
TotalHeapUsageEmulatorPlugin.java:which should be package protected At 
TotalHeapUsageEmulatorPlugin.java:[line 132] |
| FindBugs  |  module:hadoop-tools/hadoop-azure |
|           |  Useless object stored in variable keysToUpdateAsFolder of method 
org.apache.hadoop.fs.azure.NativeAzureFileSystem.mkdirs(Path, FsPermission, 
boolean) At NativeAzureFileSystem.java:keysToUpdateAsFolder of method 
org.apache.hadoop.fs.azure.NativeAzureFileSystem.mkdirs(Path, FsPermission, 
boolean) At NativeAzureFileSystem.java:[line 2454] |
| FindBugs  |  module:hadoop-tools/hadoop-sls |
|           |  org.apache.hadoop.yarn.sls.SLSRunner.simulateInfoMap is a 
mutable collection At SLSRunner.java: At SLSRunner.java:[line 103] |
|

> Switch from FindBugs to Spotbugs 
> ---------------------------------
>
>                 Key: HADOOP-14316
>                 URL: https://issues.apache.org/jira/browse/HADOOP-14316
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: build
>    Affects Versions: 3.0.0-alpha3
>            Reporter: Allen Wittenauer
>            Assignee: Allen Wittenauer
>         Attachments: HADOOP-14316.00.patch
>
>
> Findbugs hasn't gotten a decent update in a few years.  The community has 
> since forked it and created https://github.com/spotbugs/spotbugs .  Running 
> the RC1 on trunk has pointed out some definite problem areas.  I think it 
> would be to our benefit to switch trunk over sooner rather than later, even 
> though it's still in RC status.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to