HDFS-13155. BlockPlacementPolicyDefault.chooseTargetInOrder Not Checking Return Value for NULL. Contributed by Zsolt Venczel.

This commit is contained in:
Wei-Chiu Chuang 2018-06-04 07:02:05 -07:00
parent 9efb4b7db0
commit bccdfeee0a

View File

@ -485,9 +485,13 @@ protected Node chooseTargetInOrder(int numOfReplicas,
throws NotEnoughReplicasException { throws NotEnoughReplicasException {
final int numOfResults = results.size(); final int numOfResults = results.size();
if (numOfResults == 0) { if (numOfResults == 0) {
writer = chooseLocalStorage(writer, excludedNodes, blocksize, DatanodeStorageInfo storageInfo = chooseLocalStorage(writer,
maxNodesPerRack, results, avoidStaleNodes, storageTypes, true) excludedNodes, blocksize, maxNodesPerRack, results, avoidStaleNodes,
.getDatanodeDescriptor(); storageTypes, true);
writer = (storageInfo != null) ? storageInfo.getDatanodeDescriptor()
: null;
if (--numOfReplicas == 0) { if (--numOfReplicas == 0) {
return writer; return writer;
} }