Index: hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (revision 1521962) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java (working copy) @@ -1709,6 +1709,21 @@ TEST_UTIL.getHBaseAdmin().createTable(htd); } + @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) { + } + } + @Test (timeout=300000) public void testGetRegion() throws Exception { final String name = "testGetRegion"; Index: hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java =================================================================== --- hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (revision 1521962) +++ hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (working copy) @@ -1001,12 +1001,23 @@ return failed.toArray(new HTableDescriptor[failed.size()]); } + /* + * Checks whether table exists. If not, throws TableNotFoundException + * @param tableName + */ + private void checkTableExistence(TableName tableName) throws IOException { + if (!tableExists(tableName)) { + throw new TableNotFoundException(tableName); + } + } + /** * @param tableName name of table to check * @return true if table is on-line * @throws IOException if a remote or network exception occurs */ public boolean isTableEnabled(TableName tableName) throws IOException { + checkTableExistence(tableName); return connection.isTableEnabled(tableName); } @@ -1026,6 +1037,7 @@ * @throws IOException if a remote or network exception occurs */ public boolean isTableDisabled(TableName tableName) throws IOException { + checkTableExistence(tableName); return connection.isTableDisabled(tableName); }