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

liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new e25cf97  Destroy ServiceInstancesChangedListener (#9161)
e25cf97 is described below

commit e25cf97a3a938db760b906cd3856596e9017b9f7
Author: Gong Dewei <[email protected]>
AuthorDate: Sun Oct 31 15:13:43 2021 +0800

    Destroy ServiceInstancesChangedListener (#9161)
---
 .../org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java  | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
index 043f583..079653c 100644
--- 
a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
+++ 
b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
@@ -260,6 +260,7 @@ public class ServiceDiscoveryRegistry extends 
FailbackRegistry {
                 instancesChangedListener.removeListener(protocolServiceKey, 
listener);
                 if (!instancesChangedListener.hasListeners()) {
                     serviceListeners.remove(serviceNamesKey);
+                    instancesChangedListener.destroy();
                 }
             }
         }
@@ -280,6 +281,11 @@ public class ServiceDiscoveryRegistry extends 
FailbackRegistry {
         registryManager.removeDestroyedRegistry(this);
         // stop ServiceDiscovery
         execute(serviceDiscovery::destroy);
+        // destroy all event listener
+        for (ServiceInstancesChangedListener listener : 
serviceListeners.values()) {
+            listener.destroy();
+        }
+        serviceListeners.clear();
     }
 
     @Override

Reply via email to