diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/AddressListener.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/AddressListener.java index c0176d5e732..971cdc74f54 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/AddressListener.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/AddressListener.java @@ -29,6 +29,6 @@ public interface AddressListener { * * @param addresses */ - void notify(List addresses); + List notify(List addresses); } \ No newline at end of file diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java index d9e97652147..8163191391b 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryDirectory.java @@ -188,11 +188,12 @@ public synchronized void notify(List urls) { */ ExtensionLoader addressListenerExtensionLoader = ExtensionLoader.getExtensionLoader(AddressListener.class); Set surpportedListeners = addressListenerExtensionLoader.getSupportedExtensions(); - for (String addressListenerName : surpportedListeners) { - addressListenerExtensionLoader.getExtension(addressListenerName).notify(categoryUrls); + if (surpportedListeners != null && !surpportedListeners.isEmpty()) { + for (String addressListenerName : surpportedListeners) { + categoryUrls = addressListenerExtensionLoader.getExtension(addressListenerName).notify(categoryUrls); + } } - /** * TODO Try to refactor the processing of these three type of urls using Collectors.groupBy()? */