Use local variable to create new alarm instead of field variable - fix inconsistent state of currentAlarm field in case createAlarm is failed
This commit is contained in:
parent
9e3f3429e8
commit
62d9f76c57
@ -244,27 +244,27 @@ class AlarmState {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
currentAlarm = new Alarm();
|
var newAlarm = new Alarm();
|
||||||
currentAlarm.setType(alarmDefinition.getAlarmType());
|
newAlarm.setType(alarmDefinition.getAlarmType());
|
||||||
currentAlarm.setAcknowledged(false);
|
newAlarm.setAcknowledged(false);
|
||||||
currentAlarm.setCleared(false);
|
newAlarm.setCleared(false);
|
||||||
currentAlarm.setSeverity(severity);
|
newAlarm.setSeverity(severity);
|
||||||
long startTs = dataSnapshot.getTs();
|
long startTs = dataSnapshot.getTs();
|
||||||
if (startTs == 0L) {
|
if (startTs == 0L) {
|
||||||
startTs = System.currentTimeMillis();
|
startTs = System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
currentAlarm.setStartTs(startTs);
|
newAlarm.setStartTs(startTs);
|
||||||
currentAlarm.setEndTs(currentAlarm.getStartTs());
|
newAlarm.setEndTs(startTs);
|
||||||
currentAlarm.setDetails(createDetails(ruleState));
|
newAlarm.setDetails(createDetails(ruleState));
|
||||||
currentAlarm.setOriginator(originator);
|
newAlarm.setOriginator(originator);
|
||||||
currentAlarm.setTenantId(ctx.getTenantId());
|
newAlarm.setTenantId(ctx.getTenantId());
|
||||||
currentAlarm.setPropagate(alarmDefinition.isPropagate());
|
newAlarm.setPropagate(alarmDefinition.isPropagate());
|
||||||
currentAlarm.setPropagateToOwner(alarmDefinition.isPropagateToOwner());
|
newAlarm.setPropagateToOwner(alarmDefinition.isPropagateToOwner());
|
||||||
currentAlarm.setPropagateToTenant(alarmDefinition.isPropagateToTenant());
|
newAlarm.setPropagateToTenant(alarmDefinition.isPropagateToTenant());
|
||||||
if (alarmDefinition.getPropagateRelationTypes() != null) {
|
if (alarmDefinition.getPropagateRelationTypes() != null) {
|
||||||
currentAlarm.setPropagateRelationTypes(alarmDefinition.getPropagateRelationTypes());
|
newAlarm.setPropagateRelationTypes(alarmDefinition.getPropagateRelationTypes());
|
||||||
}
|
}
|
||||||
AlarmApiCallResult result = ctx.getAlarmService().createAlarm(AlarmCreateOrUpdateActiveRequest.fromAlarm(currentAlarm));
|
AlarmApiCallResult result = ctx.getAlarmService().createAlarm(AlarmCreateOrUpdateActiveRequest.fromAlarm(newAlarm));
|
||||||
currentAlarm = result.getAlarm();
|
currentAlarm = result.getAlarm();
|
||||||
return TbAlarmResult.fromAlarmResult(result);
|
return TbAlarmResult.fromAlarmResult(result);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user