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