Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java (revision 24350) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/ServerShutdownHandler.java (revision 24368) @@ -168,8 +168,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: hbase-client/src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java =================================================================== --- hbase-client/src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java (revision 24350) +++ hbase-client/src/main/java/org/apache/hadoop/hbase/catalog/MetaReader.java (revision 24368) @@ -163,11 +163,11 @@ private static HTable getHTable(final CatalogTracker catalogTracker, final TableName 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); } /**