Browse Source

Refactor: add check to ensure msg data is always object

pull/8661/head
Dmytro Skarzhynets 4 years ago
parent
commit
acac0af2d1
  1. 3
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/metadata/CalculateDeltaNode.java

3
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) { public void onMsg(TbContext ctx, TbMsg msg) {
if (msg.getType().equals(SessionMsgType.POST_TELEMETRY_REQUEST.name())) { if (msg.getType().equals(SessionMsgType.POST_TELEMETRY_REQUEST.name())) {
JsonNode json = JacksonUtil.toJsonNode(msg.getData()); JsonNode json = JacksonUtil.toJsonNode(msg.getData());
if (!json.isObject()) {
throw new IllegalArgumentException("Message body is not an object!");
}
String inputKey = config.getInputValueKey(); String inputKey = config.getInputValueKey();
if (json.has(inputKey)) { if (json.has(inputKey)) {
DonAsynchron.withCallback(getLastValue(msg.getOriginator()), DonAsynchron.withCallback(getLastValue(msg.getOriginator()),

Loading…
Cancel
Save