Commit 35626766a147577842261eda78d087b7a3af8606
Committed by
Andrew Shvayka
1 parent
c98a2d18
Refactor
Showing
1 changed file
with
8 additions
and
9 deletions
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/profile/AlarmState.java
... | ... | @@ -18,10 +18,10 @@ package org.thingsboard.rule.engine.profile; |
18 | 18 | import com.fasterxml.jackson.databind.JsonNode; |
19 | 19 | import com.fasterxml.jackson.databind.node.ObjectNode; |
20 | 20 | import com.google.common.util.concurrent.ListenableFuture; |
21 | -import com.google.common.util.concurrent.MoreExecutors; | |
22 | 21 | import lombok.Data; |
23 | 22 | import lombok.extern.slf4j.Slf4j; |
24 | 23 | import org.apache.commons.lang3.StringUtils; |
24 | +import org.thingsboard.common.util.DonAsynchron; | |
25 | 25 | import org.thingsboard.rule.engine.action.TbAlarmResult; |
26 | 26 | import org.thingsboard.rule.engine.api.TbContext; |
27 | 27 | import org.thingsboard.rule.engine.profile.state.PersistedAlarmRuleState; |
... | ... | @@ -119,14 +119,13 @@ class AlarmState { |
119 | 119 | ListenableFuture<AlarmOperationResult> alarmClearOperationResult = ctx.getAlarmService().clearAlarmForResult( |
120 | 120 | ctx.getTenantId(), currentAlarm.getId(), createDetails(clearState), System.currentTimeMillis() |
121 | 121 | ); |
122 | - alarmClearOperationResult.addListener(() -> { | |
123 | - try { | |
124 | - Alarm clearedAlarm = alarmClearOperationResult.get().getAlarm(); | |
125 | - pushMsg(ctx, new TbAlarmResult(false, false, true, clearedAlarm)); | |
126 | - } catch (Exception e) { | |
127 | - throw new RuntimeException(e); | |
128 | - } | |
129 | - }, MoreExecutors.directExecutor()); | |
122 | + DonAsynchron.withCallback(alarmClearOperationResult, | |
123 | + result -> { | |
124 | + pushMsg(ctx, new TbAlarmResult(false, false, true, result.getAlarm())); | |
125 | + }, | |
126 | + throwable -> { | |
127 | + throw new RuntimeException(throwable); | |
128 | + }); | |
130 | 129 | currentAlarm = null; |
131 | 130 | } else if (AlarmEvalResult.FALSE.equals(evalResult)) { |
132 | 131 | stateUpdate = clearAlarmState(stateUpdate, clearState); | ... | ... |