diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/profile/AlarmState.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/profile/AlarmState.java index 8fe7bcb777..c59dbb75ca 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/profile/AlarmState.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/profile/AlarmState.java @@ -55,6 +55,7 @@ class AlarmState { private volatile boolean initialFetchDone; private volatile TbMsgMetaData lastMsgMetaData; private volatile String lastMsgQueueName; + private volatile DataSnapshot dataSnapshot; AlarmState(ProfileState deviceProfile, EntityId originator, DeviceProfileAlarm alarmDefinition, PersistedAlarmState alarmState) { this.deviceProfile = deviceProfile; @@ -94,7 +95,7 @@ class AlarmState { } } if (resultState != null) { - TbAlarmResult result = calculateAlarmResult(ctx, resultState, data); + TbAlarmResult result = calculateAlarmResult(ctx, resultState); if (result != null) { pushMsg(ctx, result); } @@ -189,7 +190,7 @@ class AlarmState { } } - private TbAlarmResult calculateAlarmResult(TbContext ctx, AlarmRuleState ruleState, T data) { + private TbAlarmResult calculateAlarmResult(TbContext ctx, AlarmRuleState ruleState) { AlarmSeverity severity = ruleState.getSeverity(); if (currentAlarm != null) { // TODO: In some extremely rare cases, we might miss the event of alarm clear (If one use in-mem queue and restarted the server) or (if one manipulated the rule chain). @@ -216,7 +217,7 @@ class AlarmState { currentAlarm.setSeverity(severity); currentAlarm.setStartTs(System.currentTimeMillis()); currentAlarm.setEndTs(currentAlarm.getStartTs()); - currentAlarm.setDetails(createDetails(ruleState, (DataSnapshot) data)); + currentAlarm.setDetails(createDetails(ruleState)); currentAlarm.setOriginator(originator); currentAlarm.setTenantId(ctx.getTenantId()); currentAlarm.setPropagate(alarmDefinition.isPropagate()); @@ -229,7 +230,7 @@ class AlarmState { } } - private JsonNode createDetails(AlarmRuleState ruleState, DataSnapshot dataSnapshot) { + private JsonNode createDetails(AlarmRuleState ruleState) { ObjectNode details = JacksonUtil.OBJECT_MAPPER.createObjectNode(); String alarmDetails = ruleState.getAlarmRule().getAlarmDetails();