Index: src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (revision 1521665) +++ src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (working copy) @@ -1649,6 +1649,21 @@ assertEquals("ROOT region should not be splitted.",1, regions.size()); } + @Test + public void testIsEnabledOrDisabledOnUnknownTable() throws Exception { + try { + admin.isTableEnabled(Bytes.toBytes("unkownTable")); + fail("Test should fail if isTableEnabled called on unknown table."); + } catch (IOException e) { + } + + try { + admin.isTableDisabled(Bytes.toBytes("unkownTable")); + fail("Test should fail if isTableDisabled called on unknown table."); + } catch (IOException e) { + } + } + @org.junit.Rule public org.apache.hadoop.hbase.ResourceCheckerJUnitRule cu = new org.apache.hadoop.hbase.ResourceCheckerJUnitRule(); Index: src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (revision 1521665) +++ src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (working copy) @@ -948,6 +948,16 @@ return failed.toArray(new HTableDescriptor[failed.size()]); } + /* + * Checks whether table exists. If not, throws TableNotFoundException + * @param tableName + */ + private void checkTableExistence(byte[] tableName) throws IOException { + if (!tableExists(tableName)) { + throw new TableNotFoundException(Bytes.toString(tableName)); + } + } + /** * @param tableName name of table to check * @return true if table is on-line @@ -965,9 +975,7 @@ if (!HTableDescriptor.isMetaTable(tableName)) { HTableDescriptor.isLegalTableName(tableName); } - if(!tableExists(tableName)){ - throw new TableNotFoundException(Bytes.toString(tableName)); - } + checkTableExistence(tableName); return connection.isTableEnabled(tableName); } @@ -989,6 +997,7 @@ if (!HTableDescriptor.isMetaTable(tableName)) { HTableDescriptor.isLegalTableName(tableName); } + checkTableExistence(tableName); return connection.isTableDisabled(tableName); }