Fixed a ZK issue, where the watches were doubling each time they would fire.


Project: http://git-wip-us.apache.org/repos/asf/incubator-blur/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-blur/commit/c4ff7daf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-blur/tree/c4ff7daf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-blur/diff/c4ff7daf

Branch: refs/heads/0.1.5
Commit: c4ff7dafcfbc211dd88272ecb4eba98cdf85955d
Parents: d6f8d53
Author: Aaron McCurry <[email protected]>
Authored: Sat Apr 27 17:39:02 2013 -0400
Committer: Aaron McCurry <[email protected]>
Committed: Sat Apr 27 17:39:02 2013 -0400

----------------------------------------------------------------------
 .../indexserver/DistributedIndexServer.java        |    1 -
 .../org/apache/blur/zookeeper/WatchChildren.java   |   17 ++++++++-------
 .../org/apache/blur/zookeeper/WatchNodeData.java   |   16 +++++++-------
 .../apache/blur/zookeeper/WatchNodeExistance.java  |   16 +++++++-------
 4 files changed, 25 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c4ff7daf/src/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
----------------------------------------------------------------------
diff --git 
a/src/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
 
b/src/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
index 2ed0c43..a1421fd 100644
--- 
a/src/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
+++ 
b/src/blur-core/src/main/java/org/apache/blur/manager/indexserver/DistributedIndexServer.java
@@ -182,7 +182,6 @@ public class DistributedIndexServer extends 
AbstractIndexServer {
             _prevOnlineShards = onlineShards;
             _layoutManagers.clear();
             _layoutCache.clear();
-            LOG.info("--------------------CALL--------------------");
             LOG.info("Online shard servers changed, clearing layout managers 
and cache.");
             if (oldOnlineShards == null) {
               oldOnlineShards = new ArrayList<String>();

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c4ff7daf/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchChildren.java
----------------------------------------------------------------------
diff --git 
a/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchChildren.java 
b/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchChildren.java
index d58255a..e9c3b72 100644
--- a/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchChildren.java
+++ b/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchChildren.java
@@ -68,18 +68,19 @@ public class WatchChildren implements Closeable {
     _watchThread = new Thread(new Runnable() {
       @Override
       public void run() {
+        Watcher watcher = new Watcher() {
+          @Override
+          public void process(WatchedEvent event) {
+            synchronized (_lock) {
+              _lock.notify();
+            }
+          }
+        };
         startDoubleCheckThread();
         while (_running.get()) {
           synchronized (_lock) {
             try {
-              _children = _zooKeeper.getChildren(_path, new Watcher() {
-                @Override
-                public void process(WatchedEvent event) {
-                  synchronized (_lock) {
-                    _lock.notify();
-                  }
-                }
-              });
+              _children = _zooKeeper.getChildren(_path, watcher);
               try {
                 onChange.action(_children);
               } catch (Throwable t) {

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c4ff7daf/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeData.java
----------------------------------------------------------------------
diff --git 
a/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeData.java 
b/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeData.java
index ee8a9c3..9a3c1b6 100644
--- a/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeData.java
+++ b/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeData.java
@@ -59,6 +59,14 @@ public class WatchNodeData implements Closeable {
 
       @Override
       public void run() {
+        Watcher watcher = new Watcher() {
+          @Override
+          public void process(WatchedEvent event) {
+            synchronized (_lock) {
+              _lock.notify();
+            }
+          }
+        };
         startDoubleCheckThread();
         while (_running.get()) {
           synchronized (_lock) {
@@ -68,14 +76,6 @@ public class WatchNodeData implements Closeable {
                 LOG.debug("Path [{0}] not found.", _path);
                 return;
               }
-              Watcher watcher = new Watcher() {
-                @Override
-                public void process(WatchedEvent event) {
-                  synchronized (_lock) {
-                    _lock.notify();
-                  }
-                }
-              };
               _data = _zooKeeper.getData(_path, watcher, stat);
               onChange.action(_data);
               _lock.wait();

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/c4ff7daf/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeExistance.java
----------------------------------------------------------------------
diff --git 
a/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeExistance.java 
b/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeExistance.java
index 4dc384b..d23a4c3 100644
--- 
a/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeExistance.java
+++ 
b/src/blur-util/src/main/java/org/apache/blur/zookeeper/WatchNodeExistance.java
@@ -57,18 +57,18 @@ public class WatchNodeExistance implements Closeable {
     _watchThread = new Thread(new Runnable() {
       @Override
       public void run() {
+        Watcher watcher = new Watcher() {
+          @Override
+          public void process(WatchedEvent event) {
+            synchronized (_lock) {
+              _lock.notify();
+            }
+          }
+        };
         startDoubleCheckThread();
         while (_running.get()) {
           synchronized (_lock) {
             try {
-              Watcher watcher = new Watcher() {
-                @Override
-                public void process(WatchedEvent event) {
-                  synchronized (_lock) {
-                    _lock.notify();
-                  }
-                }
-              };
               _stat = _zooKeeper.exists(_path, watcher);
               onChange.action(_stat);
               _lock.wait();

Reply via email to