Parcourir la source

HADOOP-3320. Fix NullPointerException in NetworkTopology.getDistance(). Contributed by Hairong Kuang.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/trunk@669606 13f79535-47bb-0310-9956-ffa450edef68
Hairong Kuang il y a 17 ans
Parent
commit
4a903e3972
2 fichiers modifiés avec 6 ajouts et 3 suppressions
  1. 3 0
      CHANGES.txt
  2. 3 3
      src/hdfs/org/apache/hadoop/dfs/ReplicationTargetChooser.java

+ 3 - 0
CHANGES.txt

@@ -674,6 +674,9 @@ Release 0.17.1 - Unreleased
     HADOOP-3576. Fix NullPointerException when renaming a directory
     to its subdirectory. (Tse Wo (Nicholas), SZE via hairong)
 
+    HADOOP-3320. Fix NullPointerException in NetworkTopology.getDistance().
+    (hairong)
+
 Release 0.17.0 - 2008-05-18
 
   INCOMPATIBLE CHANGES

+ 3 - 3
src/hdfs/org/apache/hadoop/dfs/ReplicationTargetChooser.java

@@ -449,10 +449,10 @@ class ReplicationTargetChooser {
         writer = nodes[0];
       }
       for(;index<nodes.length; index++) {
-        DatanodeDescriptor shortestNode = null;
-        int shortestDistance = Integer.MAX_VALUE;
+        DatanodeDescriptor shortestNode = nodes[index];
+        int shortestDistance = clusterMap.getDistance(writer, shortestNode);
         int shortestIndex = index;
-        for(int i=index; i<nodes.length; i++) {
+        for(int i=index+1; i<nodes.length; i++) {
           DatanodeDescriptor currentNode = nodes[i];
           int currentDistance = clusterMap.getDistance(writer, currentNode);
           if (shortestDistance>currentDistance) {