1
0
Selaa lähdekoodia

HADOOP-2972. Fix for a NPE in FSDataset.invalidate.
(Mahadev Konar via dhruba)



git-svn-id: https://svn.apache.org/repos/asf/hadoop/core/trunk@636812 13f79535-47bb-0310-9956-ffa450edef68

Dhruba Borthakur 17 vuotta sitten
vanhempi
commit
544a3cbab4
2 muutettua tiedostoa jossa 12 lisäystä ja 1 poistoa
  1. 3 0
      CHANGES.txt
  2. 9 1
      src/java/org/apache/hadoop/dfs/FSDataset.java

+ 3 - 0
CHANGES.txt

@@ -193,6 +193,9 @@ Trunk (unreleased changes)
     HADOOP-2995. Fixes StreamBaseRecordReader's getProgress to return a 
     floating point number. (Dave Brosius via ddas)
 
+    HADOOP-2972. Fix for a NPE in FSDataset.invalidate.
+    (Mahadev Konar via dhruba)
+
 Release 0.16.1 - 2008-03-13
 
   INCOMPATIBLE CHANGES

+ 9 - 1
src/java/org/apache/hadoop/dfs/FSDataset.java

@@ -855,7 +855,15 @@ class FSDataset implements FSConstants, FSDatasetInterface {
       FSVolume v;
       synchronized (this) {
         f = getFile(invalidBlks[i]);
-        v = volumeMap.get(invalidBlks[i]).getVolume();
+        DatanodeBlockInfo dinfo = volumeMap.get(invalidBlks[i]);
+        if (dinfo == null) {
+          DataNode.LOG.warn("Unexpected error trying to delete block "
+                           + invalidBlks[i] + 
+                           ". BlockInfo not found in volumeMap.");
+          error = true;
+          continue;
+        }
+        v = dinfo.getVolume();
         if (f == null) {
           DataNode.LOG.warn("Unexpected error trying to delete block "
                             + invalidBlks[i] +