You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2010/04/29 00:37:21 UTC

svn commit: r939120 - in /hadoop/hbase/branches/0.20: CHANGES.txt src/java/org/apache/hadoop/hbase/master/BaseScanner.java src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java src/java/org/apache/hadoop/hbase/master/TableOperation.java

Author: stack
Date: Wed Apr 28 22:37:21 2010
New Revision: 939120

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

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

Modified: hadoop/hbase/branches/0.20/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=939120&r1=939119&r2=939120&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.20/CHANGES.txt Wed Apr 28 22:37:21 2010
@@ -105,6 +105,8 @@ Release 0.20.4 - Unreleased
                (Todd Lipcon via Stack)
    HBASE-2442  Log lease recovery catches IOException too widely
                (Todd Lipcon 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/src/java/org/apache/hadoop/hbase/master/BaseScanner.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/BaseScanner.java?rev=939120&r1=939119&r2=939120&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/BaseScanner.java (original)
+++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/BaseScanner.java Wed Apr 28 22:37:21 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/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java?rev=939120&r1=939119&r2=939120&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java (original)
+++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/ProcessServerShutdown.java Wed Apr 28 22:37:21 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/src/java/org/apache/hadoop/hbase/master/TableOperation.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/TableOperation.java?rev=939120&r1=939119&r2=939120&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/TableOperation.java (original)
+++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/TableOperation.java Wed Apr 28 22:37:21 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
+}