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 585b3a5  Merge pull request #2887, fix consumer stub bug in multi 
registries.
585b3a5 is described below

commit 585b3a5c4cee72dc0a597cef22bce83cd2df2d52
Author: Ian Luo <ian....@gmail.com>
AuthorDate: Thu Dec 6 17:48:19 2018 +0800

    Merge pull request #2887, fix consumer stub bug in multi registries.
    
    fixes #2850
---
 .../apache/dubbo/rpc/cluster/directory/AbstractDirectory.java | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
index 0cea0b8..f650b6e 100644
--- 
a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
+++ 
b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.extension.ExtensionLoader;
 import org.apache.dubbo.common.logger.Logger;
 import org.apache.dubbo.common.logger.LoggerFactory;
+import org.apache.dubbo.common.utils.StringUtils;
 import org.apache.dubbo.rpc.Invocation;
 import org.apache.dubbo.rpc.Invoker;
 import org.apache.dubbo.rpc.RpcException;
@@ -32,6 +33,7 @@ import 
org.apache.dubbo.rpc.cluster.router.MockInvokersSelector;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Abstract implementation of Directory: Invoker list returned from this 
Directory's list method have been filtered by Routers
@@ -62,7 +64,14 @@ public abstract class AbstractDirectory<T> implements 
Directory<T> {
         if (url == null) {
             throw new IllegalArgumentException("url == null");
         }
-        this.url = url;
+
+        if (url.getProtocol().equals(Constants.REGISTRY_PROTOCOL)) {
+            Map<String, String> queryMap = 
StringUtils.parseQueryString(url.getParameterAndDecoded(Constants.REFER_KEY));
+            this.url = 
url.clearParameters().addParameters(queryMap).removeParameter(Constants.MONITOR_KEY);
+        } else {
+            this.url = url;
+        }
+
         this.consumerUrl = consumerUrl;
         setRouters(routers);
     }

Reply via email to