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

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


The following commit(s) were added to refs/heads/master by this push:
     new a7697f8  fix multi-registry bug (#8034)
a7697f8 is described below

commit a7697f818efaccf458618b9d9e7f79f5473f1445
Author: xiaoheng1 <[email protected]>
AuthorDate: Tue Jun 15 17:42:52 2021 +0800

    fix multi-registry bug (#8034)
---
 .../org/apache/dubbo/config/ReferenceConfig.java   | 24 +++-------------------
 1 file changed, 3 insertions(+), 21 deletions(-)

diff --git 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index e699000..1d55694 100644
--- 
a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ 
b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -380,33 +380,15 @@ public class ReferenceConfig<T> extends 
ReferenceConfigBase<T> {
                 List<Invoker<?>> invokers = new ArrayList<Invoker<?>>();
                 URL registryURL = null;
                 for (URL url : urls) {
-                    Invoker<?> referInvoker = 
REF_PROTOCOL.refer(interfaceClass, url);
-                    if (shouldCheck()) {
-                        if (referInvoker.isAvailable()) {
-                            invokers.add(referInvoker);
-                        } else {
-                            referInvoker.destroy();
-                        }
-                    } else {
-                        invokers.add(referInvoker);
-                    }
+                    // For multi-registry scenarios, it is not checked whether 
each referInvoker is available.
+                    // Because this invoker may become available later.
+                    invokers.add(REF_PROTOCOL.refer(interfaceClass, url));
 
                     if (UrlUtils.isRegistry(url)) {
                         registryURL = url; // use last registry url
                     }
                 }
 
-                if (shouldCheck() && invokers.size() == 0) {
-                    throw new IllegalStateException("Failed to check the 
status of the service "
-                            + interfaceName
-                            + ". No provider available for the service "
-                            + (group == null ? "" : group + "/")
-                            + interfaceName +
-                            (version == null ? "" : ":" + version)
-                            + " from the multi registry cluster"
-                            + " use dubbo version " + Version.getVersion());
-                }
-
                 if (registryURL != null) { // registry url is available
                     // for multi-subscription scenario, use 'zone-aware' 
policy by default
                     String cluster = registryURL.getParameter(CLUSTER_KEY, 
ZoneAwareCluster.NAME);

Reply via email to