HBASE-22101 AsyncAdmin.isTableAvailable should not throw TableNotFoundException

Signed-off-by: zhangduo <zhangduo@apache.org>
This commit is contained in:
pingsutw 2019-03-27 03:17:01 +08:00 committed by zhangduo
parent 674921f1f4
commit 0c882100d4
2 changed files with 12 additions and 1 deletions

View File

@ -647,7 +647,11 @@ class RawAsyncHBaseAdmin implements AsyncAdmin {
CompletableFuture<Boolean> future = new CompletableFuture<>(); CompletableFuture<Boolean> future = new CompletableFuture<>();
addListener(isTableEnabled(tableName), (enabled, error) -> { addListener(isTableEnabled(tableName), (enabled, error) -> {
if (error != null) { if (error != null) {
future.completeExceptionally(error); if (error instanceof TableNotFoundException) {
future.complete(false);
} else {
future.completeExceptionally(error);
}
return; return;
} }
if (!enabled) { if (!enabled) {

View File

@ -453,4 +453,11 @@ public class TestAsyncTableAdminApi extends TestAsyncAdminBase {
assertTrue(e.getCause() instanceof TableExistsException); 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());
}
} }