You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2012/05/19 14:51:06 UTC

svn commit: r1340452 - /hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java

Author: mbautin
Date: Sat May 19 12:51:06 2012
New Revision: 1340452

URL: http://svn.apache.org/viewvc?rev=1340452&view=rev
Log:
[jira] [HBASE-6007] [89-fb] Make getTableRegions return an empty list if the table does not exist

Author: mbautin

Summary:
Making the getTableRegions Thrift API method handle TableNotFoundException and return an empty list in that case. Without this the behavior is dependent on whether an HTable object is present in the thread-local cache in case a table was deleted.

Test Plan: Unit tests

Reviewers: kannan, liyintang

Reviewed By: liyintang

CC: stack

Differential Revision: https://reviews.facebook.net/D3243

Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java?rev=1340452&r1=1340451&r2=1340452&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java Sat May 19 12:51:06 2012
@@ -50,6 +50,7 @@ import org.apache.hadoop.hbase.HRegionIn
 import org.apache.hadoop.hbase.HServerAddress;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.TableNotFoundException;
 import org.apache.hadoop.hbase.client.Delete;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
@@ -566,11 +567,19 @@ public class ThriftServerRunner implemen
       }
     }
 
+    /**
+     * @return the list of regions in the given table, or an empty list of the table does not exist
+     */
     @Override
     public List<TRegionInfo> getTableRegions(ByteBuffer tableName)
     throws IOError {
       try{
-        HTable table = getTable(tableName);
+        HTable table;
+        try {
+          table = getTable(tableName);
+        } catch (TableNotFoundException ex) {
+          return new ArrayList<TRegionInfo>();
+        }
         Map<HRegionInfo, HServerAddress> regionsInfo = table.getRegionsInfo();
         List<TRegionInfo> regions = new ArrayList<TRegionInfo>();