Sfoglia il codice sorgente

HDFS-1202. DataBlockScanner throws NPE when updated before
initialized. (Todd Lipcon via dhruba)



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

Dhruba Borthakur 15 anni fa
parent
commit
2b9b3f7361

+ 3 - 0
CHANGES.txt

@@ -108,6 +108,9 @@ Trunk (unreleased changes)
     HDFS-1145. When NameNode is shutdown it does not try to exit
     safemode anymore. (dhruba)
 
+    HDFS-1202. DataBlockScanner throws NPE when updated before 
+    initialized. (Todd Lipcon via dhruba)
+
 Release 0.21.0 - Unreleased
 
   INCOMPATIBLE CHANGES

+ 8 - 5
src/java/org/apache/hadoop/hdfs/server/datanode/DataBlockScanner.java

@@ -158,7 +158,7 @@ class DataBlockScanner implements Runnable {
     dirScanner = new DirectoryScanner(dataset, conf);
   }
   
-  private synchronized boolean isInitiliazed() {
+  private synchronized boolean isInitialized() {
     return throttler != null;
   }
   
@@ -267,7 +267,7 @@ class DataBlockScanner implements Runnable {
 
   /** Adds block to list of blocks */
   synchronized void addBlock(Block block) {
-    if (!isInitiliazed()) {
+    if (!isInitialized()) {
       return;
     }
     
@@ -286,7 +286,7 @@ class DataBlockScanner implements Runnable {
   
   /** Deletes the block from internal structures */
   synchronized void deleteBlock(Block block) {
-    if (!isInitiliazed()) {
+    if (!isInitialized()) {
       return;
     }
     BlockScanInfo info = blockMap.get(block);
@@ -297,7 +297,7 @@ class DataBlockScanner implements Runnable {
 
   /** @return the last scan time */
   synchronized long getLastScanTime(Block block) {
-    if (!isInitiliazed()) {
+    if (!isInitialized()) {
       return 0;
     }
     BlockScanInfo info = blockMap.get(block);
@@ -318,6 +318,9 @@ class DataBlockScanner implements Runnable {
   private synchronized void updateScanStatus(Block block, 
                                              ScanType type,
                                              boolean scanOk) {
+    if (!isInitialized()) {
+      return;
+    }
     BlockScanInfo info = blockMap.get(block);
     
     if ( info != null ) {
@@ -973,7 +976,7 @@ class DataBlockScanner implements Runnable {
       if (blockScanner == null) {
         buffer.append("Periodic block scanner is not running. " +
                       "Please check the datanode log if this is unexpected.");
-      } else if (blockScanner.isInitiliazed()) {
+      } else if (blockScanner.isInitialized()) {
         blockScanner.printBlockReport(buffer, summary);
       } else {
         buffer.append("Periodic block scanner is not yet initialized. " +