Index: src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java (revision 24354) +++ src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java (revision 24369) @@ -181,8 +181,11 @@ while (!this.server.isStopped()) { try { this.server.getCatalogTracker().waitForMeta(); - hris = MetaReader.getServerUserRegions(this.server.getCatalogTracker(), - this.serverName); + // Skip getting user regions if the server is stopped. + if (!this.server.isStopped()) { + hris = MetaReader.getServerUserRegions(this.server.getCatalogTracker(), + this.serverName); + } break; } catch (InterruptedException e) { Thread.currentThread().interrupt(); Index: src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java (revision 24354) +++ src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java (revision 24369) @@ -194,11 +194,11 @@ private static HTable getHTable(final CatalogTracker catalogTracker, final byte [] tableName) throws IOException { - // Passing the CatalogTracker's connection configuration ensures this + // Passing the CatalogTracker's connection ensures this // HTable instance uses the CatalogTracker's connection. org.apache.hadoop.hbase.client.HConnection c = catalogTracker.getConnection(); if (c == null) throw new NullPointerException("No connection"); - return new HTable(catalogTracker.getConnection().getConfiguration(), tableName); + return new HTable(tableName, c); } /**