From 46f742441fbbeaf9b50b0c6340d7b0de17686622 Mon Sep 17 00:00:00 2001 From: Andrii Shvaika Date: Tue, 9 Mar 2021 12:25:56 +0200 Subject: [PATCH] Alarm State improvement --- .../java/org/thingsboard/rule/engine/profile/AlarmState.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 ca8628f86d..5d4815f9bc 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 @@ -255,7 +255,9 @@ class AlarmState { if (StringUtils.isNotEmpty(alarmDetailsStr)) { for (var keyFilter : ruleState.getAlarmRule().getCondition().getCondition()) { EntityKeyValue entityKeyValue = dataSnapshot.getValue(keyFilter.getKey()); - alarmDetailsStr = alarmDetailsStr.replaceAll(String.format("\\$\\{%s}", keyFilter.getKey().getKey()), getValueAsString(entityKeyValue)); + if (entityKeyValue != null) { + alarmDetailsStr = alarmDetailsStr.replaceAll(String.format("\\$\\{%s}", keyFilter.getKey().getKey()), getValueAsString(entityKeyValue)); + } } ObjectNode newDetails = JacksonUtil.newObjectNode(); newDetails.put("data", alarmDetailsStr);