diff options
author | Kezhu Wang <kezhuw@gmail.com> | 2023-05-05 15:58:42 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-05 15:58:42 +0800 |
commit | a64dbf5b06ca1a73dc2ad6c7d31e679e312082aa (patch) | |
tree | 4453eebb9d0feae83f25fb926851ad459fba86c3 /zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java | |
parent | 89c1831f84891f425f1fa9224210587124f1c1ec (diff) | |
download | zookeeper-master.tar.gz |
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.java | 5 |
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); } } |