Index: hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java (revision 1587904) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/util/HMerge.java (working copy) @@ -125,8 +125,12 @@ "HBase instance must be running to merge a normal table"); } HBaseAdmin admin = new HBaseAdmin(conf); - if (!admin.isTableDisabled(tableName)) { - throw new TableNotDisabledException(tableName); + try { + if (!admin.isTableDisabled(tableName)) { + throw new TableNotDisabledException(tableName); + } + } finally { + admin.close(); } new OnlineMerger(conf, fs, tableName).process(); } Index: hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (revision 1587904) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java (working copy) @@ -2722,11 +2722,21 @@ HTableDescriptor[] getHTableDescriptors(List tableNames) { HTableDescriptor[] htd = new HTableDescriptor[0]; + HBaseAdmin admin = null; try { LOG.info("getHTableDescriptors == tableNames => " + tableNames); - htd = new HBaseAdmin(getConf()).getTableDescriptorsByTableName(tableNames); + admin = new HBaseAdmin(getConf()); + htd = admin.getTableDescriptorsByTableName(tableNames); } catch (IOException e) { LOG.debug("Exception getting table descriptors", e); + } finally { + if (admin != null) { + try { + admin.close(); + } catch (IOException e) { + LOG.debug("Exception closing HBaseAdmin", e); + } + } } return htd; }