summaryrefslogtreecommitdiff
path: root/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java
diff options
context:
space:
mode:
authorKezhu Wang <kezhuw@gmail.com>2023-05-05 15:58:42 +0800
committerGitHub <noreply@github.com>2023-05-05 15:58:42 +0800
commita64dbf5b06ca1a73dc2ad6c7d31e679e312082aa (patch)
tree4453eebb9d0feae83f25fb926851ad459fba86c3 /zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java
parent89c1831f84891f425f1fa9224210587124f1c1ec (diff)
downloadzookeeper-master.tar.gz
ZOOKEEPER-4466: Support different watch modes on same path (#1859)HEADmaster
Signed-off-by: Kezhu Wang <kezhuw@gmail.com> Co-authored-by: tison <wander4096@gmail.com>
Diffstat (limited to 'zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java')
-rw-r--r--zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java5
1 files changed, 3 insertions, 2 deletions
diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java
index a6f605390..603cb0b38 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java
@@ -675,7 +675,9 @@ public class DataTree {
public void addWatch(String basePath, Watcher watcher, int mode) {
WatcherMode watcherMode = WatcherMode.fromZooDef(mode);
dataWatches.addWatch(basePath, watcher, watcherMode);
- childWatches.addWatch(basePath, watcher, watcherMode);
+ if (watcherMode != WatcherMode.PERSISTENT_RECURSIVE) {
+ childWatches.addWatch(basePath, watcher, watcherMode);
+ }
}
public byte[] getData(String path, Stat stat, Watcher watcher) throws NoNodeException {
@@ -1511,7 +1513,6 @@ public class DataTree {
this.dataWatches.addWatch(path, watcher, WatcherMode.PERSISTENT);
}
for (String path : persistentRecursiveWatches) {
- this.childWatches.addWatch(path, watcher, WatcherMode.PERSISTENT_RECURSIVE);
this.dataWatches.addWatch(path, watcher, WatcherMode.PERSISTENT_RECURSIVE);
}
}