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>();