You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2021/08/26 09:06:19 UTC

[skywalking] branch master updated: Escape `.` in `String.replaceFirst` as it acts as a wildcard (#7576)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new af325b6  Escape `.` in `String.replaceFirst` as it acts as a wildcard (#7576)
af325b6 is described below

commit af325b6674dd925962cd0d9d7ddef191ca5ee34e
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Thu Aug 26 17:06:02 2021 +0800

    Escape `.` in `String.replaceFirst` as it acts as a wildcard (#7576)
---
 .../ConfigmapConfigurationWatcherRegister.java       |  4 ++--
 .../configmap/ConfigurationConfigmapInformer.java    | 20 ++++++++++++--------
 2 files changed, 14 insertions(+), 10 deletions(-)

diff --git a/oap-server/server-configuration/configuration-k8s-configmap/src/main/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigurationWatcherRegister.java b/oap-server/server-configuration/configuration-k8s-configmap/src/main/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigurationWatcherRegister.java
index 7f34e7b..f7decac 100644
--- a/oap-server/server-configuration/configuration-k8s-configmap/src/main/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigurationWatcherRegister.java
+++ b/oap-server/server-configuration/configuration-k8s-configmap/src/main/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigmapConfigurationWatcherRegister.java
@@ -59,8 +59,8 @@ public class ConfigmapConfigurationWatcherRegister extends ConfigWatcherRegister
             GroupConfigTable.GroupConfigItems groupConfigItems = new GroupConfigTable.GroupConfigItems(key);
             groupConfigTable.addGroupConfigItems(groupConfigItems);
             configMapData.forEach((groupItemKey, itemValue) -> {
-                if (groupItemKey.startsWith(key)) {
-                    String itemName = groupItemKey.replaceFirst(key + ".", "");
+                if (groupItemKey.startsWith(key + ".")) {
+                    String itemName = groupItemKey.substring(key.length() + 1);
                     groupConfigItems.add(new ConfigTable.ConfigItem(itemName, itemValue));
                 }
             });
diff --git a/oap-server/server-configuration/configuration-k8s-configmap/src/main/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigurationConfigmapInformer.java b/oap-server/server-configuration/configuration-k8s-configmap/src/main/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigurationConfigmapInformer.java
index 15061d6..f95fc43 100644
--- a/oap-server/server-configuration/configuration-k8s-configmap/src/main/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigurationConfigmapInformer.java
+++ b/oap-server/server-configuration/configuration-k8s-configmap/src/main/java/org/apache/skywalking/oap/server/configuration/configmap/ConfigurationConfigmapInformer.java
@@ -29,6 +29,7 @@ import io.kubernetes.client.openapi.models.V1ConfigMapList;
 import io.kubernetes.client.util.Config;
 import java.io.IOException;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.concurrent.ExecutorService;
@@ -86,14 +87,17 @@ public class ConfigurationConfigmapInformer {
 
     public Map<String, String> configMapData() {
         Map<String, String> configMapData = new HashMap<>();
-        if (configMapLister != null && configMapLister.list() != null) {
-            configMapLister.list().forEach(cf -> {
-                Map<String, String> data = cf.getData();
-                if (data == null) {
-                    return;
-                }
-                configMapData.putAll(data);
-            });
+        if (configMapLister != null) {
+            final List<V1ConfigMap> list = configMapLister.list();
+            if (list != null) {
+                list.forEach(cf -> {
+                    Map<String, String> data = cf.getData();
+                    if (data == null) {
+                        return;
+                    }
+                    configMapData.putAll(data);
+                });
+            }
         }
 
         return configMapData;