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 3663218b114..cd61dd5d6b4 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 @@ -700,7 +700,11 @@ class RawAsyncHBaseAdmin implements AsyncAdmin { CompletableFuture 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 1750926785b..2c63033daa0 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()); + } }