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 2013/11/14 06:01:30 UTC

svn commit: r1541820 - /hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java

Author: stack
Date: Thu Nov 14 05:01:29 2013
New Revision: 1541820

URL: http://svn.apache.org/r1541820
Log:
HBASE-9710 Use the region name, not the encoded name, when region is not on current server

Modified:
    hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java

Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1541820&r1=1541819&r2=1541820&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java Thu Nov 14 05:01:29 2013
@@ -2584,10 +2584,15 @@ public class HRegionServer implements Cl
   protected HRegion getRegion(final byte[] regionName)
       throws NotServingRegionException {
     String encodedRegionName = HRegionInfo.encodeRegionName(regionName);
-    return getRegionByEncodedName(encodedRegionName);
+    return getRegionByEncodedName(regionName, encodedRegionName);
   }
 
   protected HRegion getRegionByEncodedName(String encodedRegionName)
+      throws NotServingRegionException {
+    return getRegionByEncodedName(null, encodedRegionName);
+  }
+
+  protected HRegion getRegionByEncodedName(byte[] regionName, String encodedRegionName)
     throws NotServingRegionException {
     HRegion region = this.onlineRegions.get(encodedRegionName);
     if (region == null) {
@@ -2596,10 +2601,12 @@ public class HRegionServer implements Cl
         throw new RegionMovedException(moveInfo.getServerName(), moveInfo.getSeqNum());
       }
       Boolean isOpening = this.regionsInTransitionInRS.get(Bytes.toBytes(encodedRegionName));
+      String regionNameStr = regionName == null?
+        encodedRegionName: Bytes.toStringBinary(regionName);
       if (isOpening != null && isOpening.booleanValue()) {
-        throw new RegionOpeningException("Region is being opened: " + encodedRegionName);
+        throw new RegionOpeningException("Region " + regionNameStr + " is opening");
       }
-      throw new NotServingRegionException("Region is not online: " + encodedRegionName);
+      throw new NotServingRegionException("Region " + regionNameStr + " is not online");
     }
     return region;
   }
@@ -3965,7 +3972,7 @@ public class HRegionServer implements Cl
    */
   protected HRegion getRegion(
       final RegionSpecifier regionSpecifier) throws IOException {
-    return getRegionByEncodedName(
+    return getRegionByEncodedName(regionSpecifier.getValue().toByteArray(),
         ProtobufUtil.getRegionEncodedName(regionSpecifier));
   }