From 02cfe40f8ad2c2f095aaa779aa081426f1ad3780 Mon Sep 17 00:00:00 2001 From: howiekang <1494797292@qq.com> Date: Sat, 1 Jan 2022 11:06:16 +0800 Subject: [PATCH] Fix DynamicSentinelProperty synchronized listener set iterator race-condition problem (#2519) --- .../csp/sentinel/property/DynamicSentinelProperty.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/sentinel-core/src/main/java/com/alibaba/csp/sentinel/property/DynamicSentinelProperty.java b/sentinel-core/src/main/java/com/alibaba/csp/sentinel/property/DynamicSentinelProperty.java index b432df71..94648d4a 100755 --- a/sentinel-core/src/main/java/com/alibaba/csp/sentinel/property/DynamicSentinelProperty.java +++ b/sentinel-core/src/main/java/com/alibaba/csp/sentinel/property/DynamicSentinelProperty.java @@ -15,15 +15,14 @@ */ package com.alibaba.csp.sentinel.property; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - import com.alibaba.csp.sentinel.log.RecordLog; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArraySet; + public class DynamicSentinelProperty implements SentinelProperty { - protected Set> listeners = Collections.synchronizedSet(new HashSet>()); + protected Set> listeners = new CopyOnWriteArraySet<>(); private T value = null; public DynamicSentinelProperty() {