You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2011/08/31 19:50:33 UTC

svn commit: r1163719 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java src/main/java/org/apache/hadoop/hbase/util/PoolMap.java

Author: tedyu
Date: Wed Aug 31 17:50:33 2011
New Revision: 1163719

URL: http://svn.apache.org/viewvc?rev=1163719&view=rev
Log:
HBASE-4283  HBaseAdmin never recovers from restarted cluster (Lars Hofhansl)

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1163719&r1=1163718&r2=1163719&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Wed Aug 31 17:50:33 2011
@@ -229,6 +229,7 @@ Release 0.91.0 - Unreleased
    HBASE-4303  HRegionInfo.toString has bad quoting (todd)
    HBASE-4307  race condition in CacheTestUtils (Li Pi)
    HBASE-4310  SlabCache metrics bugfix (Li Pi)
+   HBASE-4283  HBaseAdmin never recovers from restarted cluster (Lars Hofhansl)
 
   IMPROVEMENTS
    HBASE-3290  Max Compaction Size (Nicolas Spiegelberg via Stack)  

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1163719&r1=1163718&r2=1163719&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Wed Aug 31 17:50:33 2011
@@ -104,6 +104,9 @@ public class HBaseAdmin implements Abort
       try {
         this.connection.getMaster();
         break;
+      } catch (MasterNotRunningException mnre) {
+        HConnectionManager.deleteStaleConnection(this.connection);
+        this.connection = HConnectionManager.getConnection(this.conf);        
       } catch (UndeclaredThrowableException ute) {
         HConnectionManager.deleteStaleConnection(this.connection);
         this.connection = HConnectionManager.getConnection(this.conf);        

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java?rev=1163719&r1=1163718&r2=1163719&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java Wed Aug 31 17:50:33 2011
@@ -93,7 +93,14 @@ public class PoolMap<K, V> implements Ma
 
   public boolean remove(K key, V value) {
     Pool<V> pool = pools.get(key);
-    return pool != null ? pool.remove(value) : false;
+    boolean res = false;
+    if (pool != null) {
+      res = pool.remove(value);
+      if (res && pool.size() == 0) {
+        pools.remove(key);
+      }
+    }
+    return res;
   }
 
   @Override