Просмотр исходного кода

HADOOP-1241. Fix NullPointerException in processReport when namenode is restarted. Contributed by Dhruba Borthakur.

git-svn-id: https://svn.apache.org/repos/asf/lucene/hadoop/trunk@529067 13f79535-47bb-0310-9956-ffa450edef68
Thomas White 18 лет назад
Родитель
Сommit
2da2a75bf0
2 измененных файлов с 11 добавлено и 2 удалено
  1. 3 0
      CHANGES.txt
  2. 8 2
      src/java/org/apache/hadoop/dfs/FSNamesystem.java

+ 3 - 0
CHANGES.txt

@@ -187,6 +187,9 @@ Trunk (unreleased changes)
 56. HADOOP-1239.  Add a package name to some testjar test classes.
     (Jim Kellerman via cutting)
 
+57. HADOOP-1241.  Fix NullPointerException in processReport when 
+    namenode is restarted.  (Dhruba Borthakur via tomwhite)
+
 
 Release 0.12.3 - 2007-04-06
 

+ 8 - 2
src/java/org/apache/hadoop/dfs/FSNamesystem.java

@@ -2093,9 +2093,15 @@ class FSNamesystem implements FSConstants {
     public synchronized Block[] processReport(DatanodeID nodeID, 
                                               Block newReport[]
                                             ) throws IOException {
-        NameNode.stateChangeLog.debug("BLOCK* NameSystem.processReport: "
-          +"from "+nodeID.getName()+" "+newReport.length+" blocks" );
+        if (NameNode.stateChangeLog.isDebugEnabled()) {
+          NameNode.stateChangeLog.debug("BLOCK* NameSystem.processReport: "
+            +"from "+nodeID.getName()+" "+newReport.length+" blocks" );
+        }
         DatanodeDescriptor node = getDatanode( nodeID );
+        if (node == null) {
+          throw new IOException("ProcessReport from unregisterted node: "
+                                + nodeID.getName());
+        }
 
         // Check if this datanode should actually be shutdown instead.
         if (shouldNodeShutdown(node)) {