You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by ea...@apache.org on 2025/09/25 02:24:50 UTC
(dubbo) branch 3.3 updated: fix thread safety issue of ConsumerConfigurationListener (#15707)
This is an automated email from the ASF dual-hosted git repository.
earthchen pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.3 by this push:
new 2170f0fa90 fix thread safety issue of ConsumerConfigurationListener (#15707)
2170f0fa90 is described below
commit 2170f0fa90d2dcd06ddc40c79a1015a6c29a6f00
Author: zrlw <zr...@sina.com>
AuthorDate: Thu Sep 25 10:24:45 2025 +0800
fix thread safety issue of ConsumerConfigurationListener (#15707)
---
.../dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
index 0eb58fcf58..e8eb5561e6 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java
@@ -65,6 +65,7 @@ import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;
@@ -711,7 +712,7 @@ public class ServiceDiscoveryRegistryDirectory<T> extends DynamicDirectory<T> {
}
private static class ConsumerConfigurationListener extends AbstractConfiguratorListener {
- private final List<ServiceDiscoveryRegistryDirectory<?>> listeners = new ArrayList<>();
+ private final List<ServiceDiscoveryRegistryDirectory<?>> listeners = new CopyOnWriteArrayList<>();
ConsumerConfigurationListener(ModuleModel moduleModel) {
super(moduleModel);