From e69b2df28d80fd5bca3e10edd14db2e4a3d60091 Mon Sep 17 00:00:00 2001 From: dshvaika Date: Fri, 25 Jul 2025 18:00:46 +0300 Subject: [PATCH] added additional fix for handling text nodes of additional info --- .../actors/device/DeviceActorMessageProcessor.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java index f5033cce80..c143214e2b 100644 --- a/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java +++ b/application/src/main/java/org/thingsboard/server/actors/device/DeviceActorMessageProcessor.java @@ -270,10 +270,19 @@ public class DeviceActorMessageProcessor extends AbstractContextAwareMsgProcesso rpc.setExpirationTime(request.getExpirationTime()); rpc.setRequest(JacksonUtil.valueToTree(request)); rpc.setStatus(status); - rpc.setAdditionalInfo(JacksonUtil.toJsonNode(request.getAdditionalInfo())); + rpc.setAdditionalInfo(getAdditionalInfo(request)); systemContext.getTbRpcService().save(tenantId, rpc); } + private JsonNode getAdditionalInfo(ToDeviceRpcRequest request) { + try { + return JacksonUtil.toJsonNode(request.getAdditionalInfo()); + } catch (IllegalArgumentException e) { + log.debug("Failed to parse additional info [{}]", request.getAdditionalInfo()); + return JacksonUtil.valueToTree(request.getAdditionalInfo()); + } + } + private ToDeviceRpcRequestMsg createToDeviceRpcRequestMsg(ToDeviceRpcRequest request) { ToDeviceRpcRequestBody body = request.getBody(); return ToDeviceRpcRequestMsg.newBuilder()