From f39ad6f558f441dc4341207b96a9328ecf4ad949 Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 15 Sep 2022 14:22:10 -0400 Subject: [PATCH] ZKMetadataStore: Ignore the event for root node Turns out Linux emits a `node created` event for the node a bit later. Therefore, even if we add a listened after creating a root node, we still may catch it in the listener --- .../zookeeper/metadata/ZookeeperMetadataStore.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spring-integration-zookeeper/src/main/java/org/springframework/integration/zookeeper/metadata/ZookeeperMetadataStore.java b/spring-integration-zookeeper/src/main/java/org/springframework/integration/zookeeper/metadata/ZookeeperMetadataStore.java index c7cca9da84..d9fb0a8fe2 100644 --- a/spring-integration-zookeeper/src/main/java/org/springframework/integration/zookeeper/metadata/ZookeeperMetadataStore.java +++ b/spring-integration-zookeeper/src/main/java/org/springframework/integration/zookeeper/metadata/ZookeeperMetadataStore.java @@ -315,6 +315,10 @@ public class ZookeeperMetadataStore implements ListenableMetadataStore, SmartLif ChildData data = Type.NODE_DELETED.equals(type) ? oldData : newData; String eventPath = data.getPath(); String eventKey = getKey(eventPath); + if (ZookeeperMetadataStore.this.root.equals(eventKey)) { + // Ignore the root node for metadata tree + return; + } String value = IntegrationUtils.bytesToString(data.getData(), ZookeeperMetadataStore.this.encoding); switch (type) {