From 729ac2c3f8eb96ba881cdf239d78d44f19561f59 Mon Sep 17 00:00:00 2001 From: Viacheslav Klimov Date: Wed, 25 Mar 2026 16:18:41 +0200 Subject: [PATCH] Fixes after review --- .../server/common/data/rule/RuleChainDetails.java | 3 ++- .../java/org/thingsboard/common/util/JacksonUtil.java | 8 ++++++++ .../server/dao/model/sql/RuleChainDetailsEntity.java | 6 ++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleChainDetails.java b/common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleChainDetails.java index c09cc8aef3..439fcc01d1 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleChainDetails.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/rule/RuleChainDetails.java @@ -20,6 +20,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.ArrayList; import java.util.List; @Data @@ -40,7 +41,7 @@ public class RuleChainDetails extends RuleChain { public RuleChainDetails(RuleChainDetails ruleChainDetails) { super(ruleChainDetails); - this.notes = ruleChainDetails.getNotes(); + this.notes = ruleChainDetails.getNotes() != null ? new ArrayList<>(ruleChainDetails.getNotes()) : null; } } diff --git a/common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java b/common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java index 2cf758885f..cf547cb9d4 100644 --- a/common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java +++ b/common/util/src/main/java/org/thingsboard/common/util/JacksonUtil.java @@ -243,6 +243,14 @@ public class JacksonUtil { } } + public static T treeToValue(JsonNode node, TypeReference type) { + try { + return OBJECT_MAPPER.treeToValue(node, type); + } catch (IOException e) { + throw new IllegalArgumentException("Can't convert value: " + node.toString(), e); + } + } + public static JsonNode toJsonNode(String value) { return toJsonNode(value, OBJECT_MAPPER); } diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleChainDetailsEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleChainDetailsEntity.java index 732687016e..bb7680e476 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleChainDetailsEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/RuleChainDetailsEntity.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.dao.model.sql; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import jakarta.persistence.Column; import jakarta.persistence.Convert; @@ -25,12 +26,9 @@ import lombok.EqualsAndHashCode; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.server.common.data.rule.RuleChain; import org.thingsboard.server.common.data.rule.RuleChainDetails; -import org.thingsboard.server.common.data.rule.RuleChainNote; import org.thingsboard.server.dao.model.ModelConstants; import org.thingsboard.server.dao.util.mapping.JsonConverter; -import java.util.Arrays; - @Data @EqualsAndHashCode(callSuper = true) @Entity @@ -57,7 +55,7 @@ public class RuleChainDetailsEntity extends AbstractRuleChainEntity() {})); } return details; }