HDFS-11696. Fix warnings from Spotbugs in hadoop-hdfs. Contributed by Yiqun Lin.
This commit is contained in:
parent
9b90e52f1e
commit
89a8edc014
@ -2857,9 +2857,12 @@ private void initThreadsNumForStripedReads(int numThreads) {
|
|||||||
}
|
}
|
||||||
synchronized (DFSClient.class) {
|
synchronized (DFSClient.class) {
|
||||||
if (STRIPED_READ_THREAD_POOL == null) {
|
if (STRIPED_READ_THREAD_POOL == null) {
|
||||||
STRIPED_READ_THREAD_POOL = DFSUtilClient.getThreadPoolExecutor(1,
|
// Only after thread pool is fully constructed then save it to
|
||||||
|
// volatile field.
|
||||||
|
ThreadPoolExecutor threadPool = DFSUtilClient.getThreadPoolExecutor(1,
|
||||||
numThreads, 60, "StripedRead-", true);
|
numThreads, 60, "StripedRead-", true);
|
||||||
STRIPED_READ_THREAD_POOL.allowCoreThreadTimeOut(true);
|
threadPool.allowCoreThreadTimeOut(true);
|
||||||
|
STRIPED_READ_THREAD_POOL = threadPool;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -101,8 +101,9 @@ public boolean equals(Object o) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
boolean areEqual;
|
boolean areEqual;
|
||||||
for (String disk : this.slowDisks.keySet()) {
|
for (Map.Entry<String, Map<DiskOp, Double>> entry : this.slowDisks
|
||||||
if (!this.slowDisks.get(disk).equals(that.slowDisks.get(disk))) {
|
.entrySet()) {
|
||||||
|
if (!entry.getValue().equals(that.slowDisks.get(entry.getKey()))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -252,4 +252,9 @@
|
|||||||
<Class name="org.apache.hadoop.hdfs.server.datanode.checker.AbstractFuture" />
|
<Class name="org.apache.hadoop.hdfs.server.datanode.checker.AbstractFuture" />
|
||||||
<Bug pattern="NS_DANGEROUS_NON_SHORT_CIRCUIT" />
|
<Bug pattern="NS_DANGEROUS_NON_SHORT_CIRCUIT" />
|
||||||
</Match>
|
</Match>
|
||||||
|
<Match>
|
||||||
|
<Class name="org.apache.hadoop.hdfs.server.namenode.NNUpgradeUtil$1" />
|
||||||
|
<Method name="visitFile" />
|
||||||
|
<Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE" />
|
||||||
|
</Match>
|
||||||
</FindBugsFilter>
|
</FindBugsFilter>
|
||||||
|
@ -297,14 +297,18 @@ public boolean accept(File file) {
|
|||||||
return file.isDirectory();
|
return file.isDirectory();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for (File journalDir : journalDirs) {
|
|
||||||
String jid = journalDir.getName();
|
if (journalDirs != null) {
|
||||||
if (!status.containsKey(jid)) {
|
for (File journalDir : journalDirs) {
|
||||||
Map<String, String> jMap = new HashMap<String, String>();
|
String jid = journalDir.getName();
|
||||||
jMap.put("Formatted", "true");
|
if (!status.containsKey(jid)) {
|
||||||
status.put(jid, jMap);
|
Map<String, String> jMap = new HashMap<String, String>();
|
||||||
|
jMap.put("Formatted", "true");
|
||||||
|
status.put(jid, jMap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return JSON.toString(status);
|
return JSON.toString(status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -190,6 +190,8 @@ public NamenodeRole toNodeRole() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setClusterId(String cid) {
|
public void setClusterId(String cid) {
|
||||||
|
Preconditions.checkState(this == UPGRADE || this == UPGRADEONLY
|
||||||
|
|| this == FORMAT);
|
||||||
clusterId = cid;
|
clusterId = cid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -214,6 +216,7 @@ public MetaRecoveryContext createRecoveryContext() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setForce(int force) {
|
public void setForce(int force) {
|
||||||
|
Preconditions.checkState(this == RECOVER);
|
||||||
this.force = force;
|
this.force = force;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,6 +229,7 @@ public boolean getForceFormat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setForceFormat(boolean force) {
|
public void setForceFormat(boolean force) {
|
||||||
|
Preconditions.checkState(this == FORMAT);
|
||||||
isForceFormat = force;
|
isForceFormat = force;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,6 +238,7 @@ public boolean getInteractiveFormat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setInteractiveFormat(boolean interactive) {
|
public void setInteractiveFormat(boolean interactive) {
|
||||||
|
Preconditions.checkState(this == FORMAT);
|
||||||
isInteractiveFormat = interactive;
|
isInteractiveFormat = interactive;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1336,10 +1336,14 @@ public boolean accept(File dir, String name) {
|
|||||||
return name.startsWith(BLOCK_SUBDIR_PREFIX);
|
return name.startsWith(BLOCK_SUBDIR_PREFIX);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for(int i = 0; i < otherNames.length; i++)
|
|
||||||
linkBlocksHelper(new File(from, otherNames[i]),
|
if (otherNames != null) {
|
||||||
new File(to, otherNames[i]), oldLV, hl, upgradeToIdBasedLayout,
|
for (int i = 0; i < otherNames.length; i++) {
|
||||||
blockRoot, idBasedLayoutSingleLinks);
|
linkBlocksHelper(new File(from, otherNames[i]),
|
||||||
|
new File(to, otherNames[i]), oldLV, hl, upgradeToIdBasedLayout,
|
||||||
|
blockRoot, idBasedLayoutSingleLinks);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -255,24 +255,27 @@ public boolean accept(File dir, String name) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Check whether there is any work to do.
|
// Check whether there is any work to do.
|
||||||
if (filesInStorage.length <= numCheckpointsToRetain) {
|
if (filesInStorage != null
|
||||||
|
&& filesInStorage.length <= numCheckpointsToRetain) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create a sorted list of txids from the file names.
|
// Create a sorted list of txids from the file names.
|
||||||
TreeSet<Long> sortedTxIds = new TreeSet<Long>();
|
TreeSet<Long> sortedTxIds = new TreeSet<Long>();
|
||||||
for (String fName : filesInStorage) {
|
if (filesInStorage != null) {
|
||||||
// Extract the transaction id from the file name.
|
for (String fName : filesInStorage) {
|
||||||
long fTxId;
|
// Extract the transaction id from the file name.
|
||||||
try {
|
long fTxId;
|
||||||
fTxId = Long.parseLong(fName.substring(oivImagePrefix.length() + 1));
|
try {
|
||||||
} catch (NumberFormatException nfe) {
|
fTxId = Long.parseLong(fName.substring(oivImagePrefix.length() + 1));
|
||||||
// This should not happen since we have already filtered it.
|
} catch (NumberFormatException nfe) {
|
||||||
// Log and continue.
|
// This should not happen since we have already filtered it.
|
||||||
LOG.warn("Invalid file name. Skipping " + fName);
|
// Log and continue.
|
||||||
continue;
|
LOG.warn("Invalid file name. Skipping " + fName);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
sortedTxIds.add(Long.valueOf(fTxId));
|
||||||
}
|
}
|
||||||
sortedTxIds.add(Long.valueOf(fTxId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int numFilesToDelete = sortedTxIds.size() - numCheckpointsToRetain;
|
int numFilesToDelete = sortedTxIds.size() - numCheckpointsToRetain;
|
||||||
|
@ -1917,7 +1917,7 @@ public int run(String[] argv) throws Exception {
|
|||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
} else if ("-report".equals(cmd)) {
|
} else if ("-report".equals(cmd)) {
|
||||||
if (argv.length < 1) {
|
if (argv.length > 4) {
|
||||||
printUsage(cmd);
|
printUsage(cmd);
|
||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
@ -1947,7 +1947,7 @@ public int run(String[] argv) throws Exception {
|
|||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
} else if (RollingUpgradeCommand.matches(cmd)) {
|
} else if (RollingUpgradeCommand.matches(cmd)) {
|
||||||
if (argv.length < 1 || argv.length > 2) {
|
if (argv.length > 2) {
|
||||||
printUsage(cmd);
|
printUsage(cmd);
|
||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
@ -2022,7 +2022,7 @@ public int run(String[] argv) throws Exception {
|
|||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
} else if ("-triggerBlockReport".equals(cmd)) {
|
} else if ("-triggerBlockReport".equals(cmd)) {
|
||||||
if (argv.length < 1) {
|
if ((argv.length != 2) && (argv.length != 3)) {
|
||||||
printUsage(cmd);
|
printUsage(cmd);
|
||||||
return exitCode;
|
return exitCode;
|
||||||
}
|
}
|
||||||
|
@ -722,9 +722,13 @@ private void processINode(DataInputStream in, ImageVisitor v,
|
|||||||
if (supportSnapshot && supportInodeId) {
|
if (supportSnapshot && supportInodeId) {
|
||||||
dirNodeMap.put(inodeId, pathName);
|
dirNodeMap.put(inodeId, pathName);
|
||||||
}
|
}
|
||||||
v.visit(ImageElement.NS_QUOTA, numBlocks == -1 ? in.readLong() : -1);
|
|
||||||
if (NameNodeLayoutVersion.supports(Feature.DISKSPACE_QUOTA, imageVersion))
|
v.visit(ImageElement.NS_QUOTA, in.readLong());
|
||||||
v.visit(ImageElement.DS_QUOTA, numBlocks == -1 ? in.readLong() : -1);
|
if (NameNodeLayoutVersion.supports(Feature.DISKSPACE_QUOTA,
|
||||||
|
imageVersion)) {
|
||||||
|
v.visit(ImageElement.DS_QUOTA, in.readLong());
|
||||||
|
}
|
||||||
|
|
||||||
if (supportSnapshot) {
|
if (supportSnapshot) {
|
||||||
boolean snapshottable = in.readBoolean();
|
boolean snapshottable = in.readBoolean();
|
||||||
if (!snapshottable) {
|
if (!snapshottable) {
|
||||||
|
Loading…
Reference in New Issue
Block a user