This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new 51dda38  HBASE-22101 AsyncAdmin.isTableAvailable should not throw 
TableNotFoundException
51dda38 is described below

commit 51dda380a6dd0fce0edddb5856bcdb107821cdf9
Author: pingsutw <[email protected]>
AuthorDate: Wed Mar 27 03:17:01 2019 +0800

    HBASE-22101 AsyncAdmin.isTableAvailable should not throw 
TableNotFoundException
    
    Signed-off-by: zhangduo <[email protected]>
---
 .../java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java    | 6 +++++-
 .../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java     | 7 +++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java
index d92923c..77e1423 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java
@@ -696,7 +696,11 @@ class RawAsyncHBaseAdmin implements AsyncAdmin {
     CompletableFuture<Boolean> future = new CompletableFuture<>();
     addListener(isTableEnabled(tableName), (enabled, error) -> {
       if (error != null) {
-        future.completeExceptionally(error);
+        if (error instanceof TableNotFoundException) {
+          future.complete(false);
+        } else {
+          future.completeExceptionally(error);
+        }
         return;
       }
       if (!enabled) {
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
index e1eaca7..1f62731 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java
@@ -453,4 +453,11 @@ public class TestAsyncTableAdminApi extends 
TestAsyncAdminBase {
       assertTrue(e.getCause() instanceof TableExistsException);
     }
   }
+
+  @Test
+  public void testIsTableAvailableWithInexistantTable() throws Exception {
+    final TableName newTableName = 
TableName.valueOf(tableName.getNameAsString() + "_new");
+    // test for inexistant table
+    assertFalse(admin.isTableAvailable(newTableName).get());
+  }
 }

Reply via email to