You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/08/17 01:58:53 UTC

[incubator-servicecomb-java-chassis] 01/02: [SCB-846] ConfigCenterClient log too much in the pull mode

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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-java-chassis.git

commit 9002f284c5577006059cd1224db04ab293488808
Author: heyile <he...@huawei.com>
AuthorDate: Wed Aug 15 21:40:30 2018 +0800

    [SCB-846] ConfigCenterClient log too much in the pull mode
---
 .../apache/servicecomb/config/client/ConfigCenterClient.java  |  3 ---
 .../apache/servicecomb/config/client/ParseConfigUtils.java    | 11 ++++++++++-
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
index 3c0a199..db5e5ac 100644
--- a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
+++ b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ConfigCenterClient.java
@@ -375,14 +375,11 @@ public class ConfigCenterClient {
           if (rsp.statusCode() == HttpResponseStatus.OK.code()) {
             rsp.bodyHandler(buf -> {
               try {
-                String oldRevision = ParseConfigUtils.getInstance().getCurrentVersionInfo();
                 parseConfigUtils
                     .refreshConfigItems(JsonUtils.OBJ_MAPPER.readValue(buf.toString(),
                         new TypeReference<LinkedHashMap<String, Map<String, String>>>() {
                         }));
                 EventManager.post(new ConnSuccEvent());
-                LOGGER.info("Updating remote config is done.,revision has changed from {} to {}", oldRevision,
-                    ParseConfigUtils.getInstance().getCurrentVersionInfo());
               } catch (IOException e) {
                 EventManager.post(new ConnFailEvent(
                     "config update result parse fail " + e.getMessage()));
diff --git a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
index d86bd54..f370728 100644
--- a/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
+++ b/dynamic-config/config-cc/src/main/java/org/apache/servicecomb/config/client/ParseConfigUtils.java
@@ -74,14 +74,23 @@ public class ParseConfigUtils {
   public void refreshConfigItems(Map<String, Map<String, Object>> remoteItems) {
     try {
       configLock.lock();
+      String oldRevision = currentVersionInfo;
+      boolean newVersion = false;
       currentVersionInfo =
           remoteItems.getOrDefault("revision", new HashMap<>()).getOrDefault("version", "default").toString();
       //make sure the currentVersionInfo != ""
       currentVersionInfo = currentVersionInfo.equals("") ? "default" : currentVersionInfo;
-      remoteItems.remove("revision");//the key revision is not the config setting
+      if (remoteItems.containsKey("revision")) {
+        remoteItems.remove("revision");//the key revision is not the config setting
+        newVersion = true;
+      }
       multiDimensionItems.clear();
       multiDimensionItems.putAll(remoteItems);
       doRefreshItems();
+      if (newVersion) {
+        LOGGER.info("Updating remote config is done. revision has changed from {} to {}", oldRevision,
+            currentVersionInfo);
+      }
     } finally {
       configLock.unlock();
     }