This is an automated email from the ASF dual-hosted git repository.

amichair pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-rsa.git

commit 8e1280570bec01ffd6f3acc89f06e87a321c6f02
Author: Amichai Rothman <[email protected]>
AuthorDate: Wed Apr 1 12:24:46 2026 +0300

    ARIES-2201 Fix ZookeeperEndpointListener continuing to handle events after 
being closed
---
 .../discovery/zookeeper/client/ZookeeperEndpointListener.java    | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/client/ZookeeperEndpointListener.java
 
b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/client/ZookeeperEndpointListener.java
index a2ce6e6b..beaab10d 100644
--- 
a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/client/ZookeeperEndpointListener.java
+++ 
b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/client/ZookeeperEndpointListener.java
@@ -46,12 +46,10 @@ public class ZookeeperEndpointListener implements Closeable 
{
     private static final Logger LOG = 
LoggerFactory.getLogger(ZookeeperEndpointListener.class);
 
     private Map<String, EndpointDescription> endpoints = new 
ConcurrentHashMap<>();
-
     private ZooKeeper zk;
-
     private EndpointDescriptionParser parser;
-
     private Consumer<EndpointEvent> listener;
+    private volatile boolean closed;
 
     ZookeeperEndpointListener(ZooKeeper zk, EndpointDescriptionParser parser, 
Consumer<EndpointEvent> listener) {
         this.zk = zk;
@@ -66,11 +64,14 @@ public class ZookeeperEndpointListener implements Closeable 
{
 
     @Override
     public void close() {
-        // TODO unregister watchers
+        closed = true;
         endpoints.clear();
     }
 
     private void process(WatchedEvent event) {
+        if (closed) {
+            return;
+        }
         String path = event.getPath();
         LOG.info("Received event {}", event);
         switch (event.getType()) {

Reply via email to