Index: hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java =================================================================== --- hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java (revision 1504717) +++ hbase-client/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java (working copy) @@ -318,19 +318,31 @@ } /** - * Delete information for all connections. + * Delete information for all connections. Close or not the connection, depending on the + * staleConnection boolean and the ref count. By default, you should use it with + * staleConnection to true. */ - public static void deleteAllConnections() { + public static void deleteAllConnections(boolean staleConnection) { synchronized (CONNECTION_INSTANCES) { Set connectionKeys = new HashSet(); connectionKeys.addAll(CONNECTION_INSTANCES.keySet()); for (HConnectionKey connectionKey : connectionKeys) { - deleteConnection(connectionKey, false); + deleteConnection(connectionKey, staleConnection); } CONNECTION_INSTANCES.clear(); } } + /** + * Delete information for all connections.. + * @deprecated kept for backward compatibility, but the behavior is broken. HBASE-8983 + */ + @Deprecated + public static void deleteAllConnections() { + deleteAllConnections(false); + } + + private static void deleteConnection(HConnection connection, boolean staleConnection) { synchronized (CONNECTION_INSTANCES) { for (Entry e: CONNECTION_INSTANCES.entrySet()) { @@ -353,7 +365,7 @@ } } else { LOG.error("Connection not found in the list, can't delete it "+ - "(connection key=" + connectionKey + "). May be the key was modified?"); + "(connection key=" + connectionKey + "). May be the key was modified?", new Exception()); } } } Index: hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java (revision 1504717) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/MiniHBaseCluster.java (working copy) @@ -507,7 +507,7 @@ if (this.hbaseCluster != null) { this.hbaseCluster.shutdown(); } - HConnectionManager.deleteAllConnections(); + HConnectionManager.deleteAllConnections(false); } @Override