Fix notification deduplication service (ConcurrentModificationException for deduplicationDurations map)
This commit is contained in:
parent
85f2047c8b
commit
f23061a9ae
@ -29,9 +29,8 @@ import org.thingsboard.server.common.data.notification.rule.trigger.Notification
|
||||
import org.thingsboard.server.common.data.notification.rule.trigger.config.NotificationRuleTriggerType;
|
||||
import org.thingsboard.server.queue.util.PropertyUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
import static org.springframework.util.ConcurrentReferenceHashMap.ReferenceType.SOFT;
|
||||
@ -41,7 +40,7 @@ import static org.springframework.util.ConcurrentReferenceHashMap.ReferenceType.
|
||||
@Slf4j
|
||||
public class DefaultNotificationDeduplicationService implements NotificationDeduplicationService {
|
||||
|
||||
private Map<NotificationRuleTriggerType, Long> deduplicationDurations;
|
||||
private ConcurrentMap<NotificationRuleTriggerType, Long> deduplicationDurations;
|
||||
|
||||
@Autowired(required = false)
|
||||
private CacheManager cacheManager;
|
||||
@ -116,7 +115,7 @@ public class DefaultNotificationDeduplicationService implements NotificationDedu
|
||||
@Autowired
|
||||
public void setDeduplicationDurations(@Value("${notification_system.rules.deduplication_durations:}")
|
||||
String deduplicationDurationsStr) {
|
||||
this.deduplicationDurations = new HashMap<>();
|
||||
this.deduplicationDurations = new ConcurrentHashMap<>();
|
||||
PropertyUtils.getProps(deduplicationDurationsStr).forEach((triggerType, duration) -> {
|
||||
this.deduplicationDurations.put(NotificationRuleTriggerType.valueOf(triggerType), Long.parseLong(duration));
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user