Author: stack
Date: Wed Apr 28 22:39:56 2010
New Revision: 939121

URL: http://svn.apache.org/viewvc?rev=939121&view=rev
Log:
HBASE-2497  ProcessServerShutdown throws NullPointerException for offline 
regions

Modified:
    hadoop/hbase/branches/0.20_pre_durability/CHANGES.txt
    
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/BaseScanner.java
    
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java
    
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/TableOperation.java

Modified: hadoop/hbase/branches/0.20_pre_durability/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/CHANGES.txt?rev=939121&r1=939120&r2=939121&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_pre_durability/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20_pre_durability/CHANGES.txt Wed Apr 28 22:39:56 
2010
@@ -62,6 +62,8 @@ Release 0.20.4 - Mon Apr 26 08:39:23 PDT
    HBASE-2378  Bulk insert with multiple reducers broken due to improper
                ImmutableBytesWritable comparator
    HBASE-2381  missing copyright headers (Andrew Purtell via Stack)
+   HBASE-2497  ProcessServerShutdown throws NullPointerException for offline
+               regions
 
   IMPROVEMENTS
    HBASE-2180  Bad read performance from synchronizing hfile.fddatainputstream

Modified: 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/BaseScanner.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/BaseScanner.java?rev=939121&r1=939120&r2=939121&view=diff
==============================================================================
--- 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/BaseScanner.java
 (original)
+++ 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/BaseScanner.java
 Wed Apr 28 22:39:56 2010
@@ -247,7 +247,7 @@ abstract class BaseScanner extends Chore
    * @param r
    * @return Empty String or server address found in <code>r</code>
    */
-  private String getServerAddress(final Result r) {
+  static String getServerAddress(final Result r) {
     byte [] val = r.getValue(CATALOG_FAMILY, SERVER_QUALIFIER);
     return val == null || val.length <= 0? "": Bytes.toString(val);
   }
@@ -256,7 +256,7 @@ abstract class BaseScanner extends Chore
    * @param r
    * @return Return 0L or server startcode found in <code>r</code>
    */
-  private long getStartCode(final Result r) {
+  static long getStartCode(final Result r) {
     byte [] val = r.getValue(CATALOG_FAMILY, STARTCODE_QUALIFIER);
     return val == null || val.length <= 0? 0L: Bytes.toLong(val);
   }

Modified: 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java?rev=939121&r1=939120&r2=939121&view=diff
==============================================================================
--- 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java
 (original)
+++ 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java
 Wed Apr 28 22:39:56 2010
@@ -26,19 +26,16 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HRegionInfo;
+import org.apache.hadoop.hbase.HServerAddress;
 import org.apache.hadoop.hbase.HServerInfo;
 import org.apache.hadoop.hbase.RemoteExceptionHandler;
-import org.apache.hadoop.hbase.HServerAddress;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.ipc.HRegionInterface;
 import org.apache.hadoop.hbase.regionserver.HLog;
 import org.apache.hadoop.hbase.regionserver.HRegion;
-import org.apache.hadoop.hbase.util.Writables;
 import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.hbase.io.RowResult;
 
 /** 
  * Instantiated when a server's lease has expired, meaning it has crashed.
@@ -143,10 +140,9 @@ class ProcessServerShutdown extends Regi
         // shutdown server but that would mean that we'd reassign regions that
         // were already out being assigned, ones that were product of a split
         // that happened while the shutdown was being processed.
-        String serverAddress = 
-          Bytes.toString(values.getValue(CATALOG_FAMILY, SERVER_QUALIFIER));
-        long startCode =
-          Bytes.toLong(values.getValue(CATALOG_FAMILY, STARTCODE_QUALIFIER));
+        String serverAddress = BaseScanner.getServerAddress(values);
+        long startCode = BaseScanner.getStartCode(values);
+
         String serverName = null;
         if (serverAddress != null && serverAddress.length() > 0) {
           serverName = HServerInfo.getServerName(serverAddress, startCode);

Modified: 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/TableOperation.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/TableOperation.java?rev=939121&r1=939120&r2=939121&view=diff
==============================================================================
--- 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/TableOperation.java
 (original)
+++ 
hadoop/hbase/branches/0.20_pre_durability/src/java/org/apache/hadoop/hbase/master/TableOperation.java
 Wed Apr 28 22:39:56 2010
@@ -101,10 +101,8 @@ abstract class TableOperation implements
                       Bytes.toStringBinary(values.getRow()));
             continue;
           }
-          String serverAddress = 
-            Bytes.toString(values.getValue(CATALOG_FAMILY, SERVER_QUALIFIER));
-          long startCode = 
-            Bytes.toLong(values.getValue(CATALOG_FAMILY, 
STARTCODE_QUALIFIER)); 
+          String serverAddress = BaseScanner.getServerAddress(values);
+          long startCode = BaseScanner.getStartCode(values);
           String serverName = null;
           if (serverAddress != null && serverAddress.length() > 0) {
             serverName = HServerInfo.getServerName(serverAddress, startCode);
@@ -177,4 +175,4 @@ abstract class TableOperation implements
 
   protected abstract void postProcessMeta(MetaRegion m,
     HRegionInterface server) throws IOException;
-}
\ No newline at end of file
+}


Reply via email to