Commit 35626766a147577842261eda78d087b7a3af8606

Authored by Viacheslav Klimov
Committed by Andrew Shvayka
1 parent c98a2d18

Refactor

@@ -18,10 +18,10 @@ package org.thingsboard.rule.engine.profile; @@ -18,10 +18,10 @@ package org.thingsboard.rule.engine.profile;
18 import com.fasterxml.jackson.databind.JsonNode; 18 import com.fasterxml.jackson.databind.JsonNode;
19 import com.fasterxml.jackson.databind.node.ObjectNode; 19 import com.fasterxml.jackson.databind.node.ObjectNode;
20 import com.google.common.util.concurrent.ListenableFuture; 20 import com.google.common.util.concurrent.ListenableFuture;
21 -import com.google.common.util.concurrent.MoreExecutors;  
22 import lombok.Data; 21 import lombok.Data;
23 import lombok.extern.slf4j.Slf4j; 22 import lombok.extern.slf4j.Slf4j;
24 import org.apache.commons.lang3.StringUtils; 23 import org.apache.commons.lang3.StringUtils;
  24 +import org.thingsboard.common.util.DonAsynchron;
25 import org.thingsboard.rule.engine.action.TbAlarmResult; 25 import org.thingsboard.rule.engine.action.TbAlarmResult;
26 import org.thingsboard.rule.engine.api.TbContext; 26 import org.thingsboard.rule.engine.api.TbContext;
27 import org.thingsboard.rule.engine.profile.state.PersistedAlarmRuleState; 27 import org.thingsboard.rule.engine.profile.state.PersistedAlarmRuleState;
@@ -119,14 +119,13 @@ class AlarmState { @@ -119,14 +119,13 @@ class AlarmState {
119 ListenableFuture<AlarmOperationResult> alarmClearOperationResult = ctx.getAlarmService().clearAlarmForResult( 119 ListenableFuture<AlarmOperationResult> alarmClearOperationResult = ctx.getAlarmService().clearAlarmForResult(
120 ctx.getTenantId(), currentAlarm.getId(), createDetails(clearState), System.currentTimeMillis() 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 currentAlarm = null; 129 currentAlarm = null;
131 } else if (AlarmEvalResult.FALSE.equals(evalResult)) { 130 } else if (AlarmEvalResult.FALSE.equals(evalResult)) {
132 stateUpdate = clearAlarmState(stateUpdate, clearState); 131 stateUpdate = clearAlarmState(stateUpdate, clearState);