From ecf4822ae1a7866dab1350f203966e6cec918163 Mon Sep 17 00:00:00 2001 From: Jason Joo Date: Thu, 25 Apr 2019 20:00:45 +0800 Subject: [PATCH] Make SentinelConfig.loadProps() thread-safe using CopyOnWriteArraySet (#706) --- .../java/com/alibaba/csp/sentinel/config/SentinelConfig.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sentinel-core/src/main/java/com/alibaba/csp/sentinel/config/SentinelConfig.java b/sentinel-core/src/main/java/com/alibaba/csp/sentinel/config/SentinelConfig.java index 493b9e40..50791912 100755 --- a/sentinel-core/src/main/java/com/alibaba/csp/sentinel/config/SentinelConfig.java +++ b/sentinel-core/src/main/java/com/alibaba/csp/sentinel/config/SentinelConfig.java @@ -20,6 +20,7 @@ import java.io.FileInputStream; import java.util.Map; import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArraySet; import com.alibaba.csp.sentinel.log.LogBase; import com.alibaba.csp.sentinel.log.RecordLog; @@ -123,7 +124,7 @@ public class SentinelConfig { } // JVM parameter override file config. - for (Map.Entry entry : System.getProperties().entrySet()) { + for (Map.Entry entry : new CopyOnWriteArraySet<>(System.getProperties().entrySet())) { String configKey = entry.getKey().toString(); String configValue = entry.getValue().toString(); String configValueOld = getConfig(configKey);