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 2858b5ffefe2f544141efb5ac93061ee94cba8c0
Author: Amichai Rothman <[email protected]>
AuthorDate: Wed Jun 3 20:02:37 2026 +0300

    ARIES-2232 Fix TCP Discovery InterestManager not notifying listeners when 
scope changes
---
 .../org/apache/aries/rsa/discovery/tcp/InterestManager.java  | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git 
a/discovery/tcp/src/main/java/org/apache/aries/rsa/discovery/tcp/InterestManager.java
 
b/discovery/tcp/src/main/java/org/apache/aries/rsa/discovery/tcp/InterestManager.java
index 6c9c0365..5abdfc75 100644
--- 
a/discovery/tcp/src/main/java/org/apache/aries/rsa/discovery/tcp/InterestManager.java
+++ 
b/discovery/tcp/src/main/java/org/apache/aries/rsa/discovery/tcp/InterestManager.java
@@ -48,13 +48,13 @@ public class InterestManager {
         // an existing listener is not notified, but we do need to update its 
scopes (interest)
         Interest interest = new Interest(sref, listener);
         interests.put(sref, interest); // if it already exists - replace it 
with the new interest (scopes)
-        LOG.trace("Updated interest {} (new={})", interest, isNew);
-        if (isNew) {
-            // notify new listener of all known remote endpoints
-            remoteEndpoints.values().stream()
-                .flatMap(endpoints -> endpoints.values().stream())
+        LOG.trace("Updated interest {} (new={})", isNew, interest);
+        // notify new or updated listener of all known remote endpoints
+        // (according to the spec, the listener is idempotent so we don't 
worry about ADDED duplicates)
+        LOG.debug("Notifying new interest {} of all known remote endpoints 
{}", interest, remoteEndpoints.values());
+        remoteEndpoints.values().stream()
+            .flatMap(endpoints -> endpoints.values().stream())
                 .forEach(endpoint -> interest.notifyListener(new 
EndpointEvent(ADDED, endpoint)));
-        }
     }
 
     public void removeListener(ServiceReference<EndpointEventListener> sref) {

Reply via email to