From acac0af2d1e662f6dbc3e3e096ea06544960a31b Mon Sep 17 00:00:00 2001 From: Dmytro Skarzhynets Date: Mon, 17 Apr 2023 15:45:16 +0300 Subject: [PATCH] Refactor: add check to ensure msg data is always object --- .../thingsboard/rule/engine/metadata/CalculateDeltaNode.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java index ca96fdead9..3e2618de98 100644 --- a/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java +++ b/rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java @@ -77,6 +77,9 @@ public class CalculateDeltaNode implements TbNode { public void onMsg(TbContext ctx, TbMsg msg) { if (msg.getType().equals(SessionMsgType.POST_TELEMETRY_REQUEST.name())) { JsonNode json = JacksonUtil.toJsonNode(msg.getData()); + if (!json.isObject()) { + throw new IllegalArgumentException("Message body is not an object!"); + } String inputKey = config.getInputValueKey(); if (json.has(inputKey)) { DonAsynchron.withCallback(getLastValue(msg.getOriginator()),