summaryrefslogtreecommitdiff
path: root/hadoop-hdfs-project/hadoop-hdfs/src/main
diff options
context:
space:
mode:
authorWei-Chiu Chuang <weichiu@apache.org>2018-06-04 07:02:05 -0700
committerWei-Chiu Chuang <weichiu@apache.org>2018-06-04 07:03:05 -0700
commitbccdfeee0aaef9cb98d09ee39909b63fdcbeeafc (patch)
treed64f499dd0852f4d0deaef0552838f7240caf560 /hadoop-hdfs-project/hadoop-hdfs/src/main
parent9efb4b7db00d79aded52997ec89a1be94ecdd268 (diff)
HDFS-13155. BlockPlacementPolicyDefault.chooseTargetInOrder Not Checking Return Value for NULL. Contributed by Zsolt Venczel.
Diffstat (limited to 'hadoop-hdfs-project/hadoop-hdfs/src/main')
-rw-r--r--hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java
index 518e62c6b2..c94232fbcb 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyDefault.java
@@ -485,9 +485,13 @@ public class BlockPlacementPolicyDefault extends BlockPlacementPolicy {
throws NotEnoughReplicasException {
final int numOfResults = results.size();
if (numOfResults == 0) {
- writer = chooseLocalStorage(writer, excludedNodes, blocksize,
- maxNodesPerRack, results, avoidStaleNodes, storageTypes, true)
- .getDatanodeDescriptor();
+ DatanodeStorageInfo storageInfo = chooseLocalStorage(writer,
+ excludedNodes, blocksize, maxNodesPerRack, results, avoidStaleNodes,
+ storageTypes, true);
+
+ writer = (storageInfo != null) ? storageInfo.getDatanodeDescriptor()
+ : null;
+
if (--numOfReplicas == 0) {
return writer;
}