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/10/24 03:04:09 UTC

[incubator-dubbo] 04/05: Ignore invalid configurators

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

liujun pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit 8839c9b2067a6fb3cc53c9f76463370a0dbb9efa
Author: ken.lj <ke...@gmail.com>
AuthorDate: Wed Oct 24 11:03:11 2018 +0800

    Ignore invalid configurators
---
 dubbo-dependencies-bom/pom.xml                                   | 1 -
 dubbo-governance/dubbo-governance-zookeeper/pom.xml              | 5 -----
 .../support/archaius/sources/ZooKeeperConfigurationSource.java   | 4 ++++
 .../org/apache/dubbo/registry/integration/RegistryDirectory.java | 9 +++++++--
 .../org/apache/dubbo/registry/integration/RegistryProtocol.java  | 9 +++++++--
 5 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml
index 4cd3a04..1c4cbc5 100644
--- a/dubbo-dependencies-bom/pom.xml
+++ b/dubbo-dependencies-bom/pom.xml
@@ -378,7 +378,6 @@
                 <groupId>commons-configuration</groupId>
                 <artifactId>commons-configuration</artifactId>
                 <version>${commons_configuration_version}</version>
-                <scope>provided</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.commons</groupId>
diff --git a/dubbo-governance/dubbo-governance-zookeeper/pom.xml b/dubbo-governance/dubbo-governance-zookeeper/pom.xml
index 55b7bba..2e5c61a 100644
--- a/dubbo-governance/dubbo-governance-zookeeper/pom.xml
+++ b/dubbo-governance/dubbo-governance-zookeeper/pom.xml
@@ -34,11 +34,6 @@
             <version>${project.parent.version}</version>
         </dependency>
         <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-remoting-zookeeper</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
             <groupId>com.netflix.archaius</groupId>
             <artifactId>archaius-core</artifactId>
         </dependency>
diff --git a/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/sources/ZooKeeperConfigurationSource.java b/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/sources/ZooKeeperConfigurationSource.java
index 0da40ea..7a96c4d 100644
--- a/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/sources/ZooKeeperConfigurationSource.java
+++ b/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/sources/ZooKeeperConfigurationSource.java
@@ -77,6 +77,10 @@ public class ZooKeeperConfigurationSource implements WatchedConfigurationSource,
             throw new IllegalArgumentException("connectString==null, must specify the address to connect for zookeeper archaius source.");
         }
 
+        if (!configRootPath.startsWith("/")) {
+            configRootPath = "/" + configRootPath;
+        }
+
         CuratorFramework client = CuratorFrameworkFactory.newClient(connectString, sessionTimeout, connectTimeout,
                 new ExponentialBackoffRetry(1000, 3));
         client.start();
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 09e82fd..6c51eb7 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
@@ -170,8 +170,13 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
         if (StringUtils.isEmpty(rawConfig)) {
             return new LinkedList<>();
         }
-        List<URL> urls = ConfigParser.parseConfigurators(rawConfig);
-        return urls.stream().map(configuratorFactory::getConfigurator).collect(Collectors.toList());
+        try {
+            List<URL> urls = ConfigParser.parseConfigurators(rawConfig);
+            return urls.stream().map(configuratorFactory::getConfigurator).collect(Collectors.toList());
+        } catch (Exception e) {
+            logger.error("Failed to parse raw dynamic config and it will not take effect, the raw config is: " + rawConfig, e);
+        }
+        return new LinkedList<>();
     }
 
     public void setProtocol(Protocol protocol) {
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
index 764b873..7003a4c 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
@@ -616,8 +616,13 @@ public class RegistryProtocol implements Protocol {
                 urls = new ArrayList<>();
                 urls.add(originUrl);
             } else {
-                // parseConfigurators will recognize app/service config automatically.
-                urls = ConfigParser.parseConfigurators(event.getNewValue());
+                try {
+                    // parseConfigurators will recognize app/service config automatically.
+                    urls = ConfigParser.parseConfigurators(event.getNewValue());
+                } catch (Exception e) {
+                    logger.error("Failed to parse raw dynamic config and it will not take effect, the raw config is: " + event.getNewValue(), e);
+                    return;
+                }
             }
             notify(urls);
         }