You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jg...@apache.org on 2010/10/29 23:32:11 UTC

svn commit: r1028911 - in /hbase/trunk: CHANGES.txt src/main/java/org/apache/hadoop/hbase/master/HMaster.java src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java

Author: jgray
Date: Fri Oct 29 21:32:11 2010
New Revision: 1028911

URL: http://svn.apache.org/viewvc?rev=1028911&view=rev
Log:
HBASE-3172 Reverse order of AssignmentManager and MetaNodeTracker in ZooKeeperWatcher

Modified:
    hbase/trunk/CHANGES.txt
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java

Modified: hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1028911&r1=1028910&r2=1028911&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Fri Oct 29 21:32:11 2010
@@ -624,6 +624,8 @@ Release 0.21.0 - Unreleased
                and assorted fixes around this + TestRollingRestart added
    HBASE-3160  Use more intelligent priorities for PriorityCompactionQueue
                (Nicolas Spiegelberg via Stack)
+   HBASE-3172  Reverse order of AssignmentManager and MetaNodeTracker in
+               ZooKeeperWatcher
 
 
   IMPROVEMENTS

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1028911&r1=1028910&r2=1028911&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Fri Oct 29 21:32:11 2010
@@ -342,7 +342,7 @@ implements HMasterInterface, HMasterRegi
 
     this.assignmentManager = new AssignmentManager(this, serverManager,
       this.catalogTracker, this.executorService);
-    zooKeeper.registerListener(assignmentManager);
+    zooKeeper.registerListenerFirst(assignmentManager);
 
     this.regionServerTracker = new RegionServerTracker(zooKeeper, this,
       this.serverManager);

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java?rev=1028911&r1=1028910&r2=1028911&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java (original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.java Fri Oct 29 21:32:11 2010
@@ -21,8 +21,9 @@ package org.apache.hadoop.hbase.zookeepe
 
 import java.io.IOException;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
-import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -64,8 +65,8 @@ public class ZooKeeperWatcher implements
   private Abortable abortable;
 
   // listeners to be notified
-  private final Set<ZooKeeperListener> listeners =
-    new CopyOnWriteArraySet<ZooKeeperListener>();
+  private final List<ZooKeeperListener> listeners =
+    new CopyOnWriteArrayList<ZooKeeperListener>();
 
   // set of unassigned nodes watched
   private Set<String> unassignedNodes = new HashSet<String>();
@@ -201,6 +202,15 @@ public class ZooKeeperWatcher implements
   }
 
   /**
+   * Register the specified listener to receive ZooKeeper events and add it as
+   * the first in the list of current listeners.
+   * @param listener
+   */
+  public void registerListenerFirst(ZooKeeperListener listener) {
+    listeners.add(0, listener);
+  }
+
+  /**
    * Get the connection to ZooKeeper.
    * @return connection reference to zookeeper
    */