You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2018/12/27 08:21:09 UTC
[incubator-dubbo] branch master updated: make ListenableRouter code
thread safe
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new 4cf3e38 make ListenableRouter code thread safe
4cf3e38 is described below
commit 4cf3e38673b23fda697b900678005b9c2cad270f
Author: ken.lj <ke...@gmail.com>
AuthorDate: Thu Dec 27 16:20:48 2018 +0800
make ListenableRouter code thread safe
---
.../rpc/cluster/router/condition/config/AppRouterFactory.java | 2 +-
.../rpc/cluster/router/condition/config/ListenableRouter.java | 7 +++----
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java
index b55cdbf..066f865 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java
@@ -29,7 +29,7 @@ import org.apache.dubbo.rpc.cluster.RouterFactory;
public class AppRouterFactory implements RouterFactory {
public static final String NAME = "app";
- private Router router;
+ private volatile Router router;
@Override
public Router getRouter(URL url) {
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java
index f3dedde..71c5fce 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java
@@ -124,14 +124,13 @@ public abstract class ListenableRouter extends AbstractRouter implements Configu
}
}
- private void init(String ruleKey) {
- Assert.notEmptyString(ruleKey, "router rule's name cannot be null");
+ private synchronized void init(String ruleKey) {
+ Assert.notEmptyString(ruleKey, "router rule's key cannot be null");
String router = ruleKey + Constants.ROUTERS_SUFFIX;
+ configuration.addListener(router, this);
String rule = configuration.getConfig(router);
if (rule != null) {
this.process(new ConfigChangeEvent(router, rule));
}
-
- configuration.addListener(router, this);
}
}