[
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]