From bf9c4af2aa738655dcbfc5dabde934184b38cbc2 Mon Sep 17 00:00:00 2001 From: YevhenBondarenko Date: Thu, 1 Feb 2024 20:23:12 +0100 Subject: [PATCH] fixed infinit tell failure --- .../AbstractTbRuleEngineSubmitStrategy.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/application/src/main/java/org/thingsboard/server/service/queue/processing/AbstractTbRuleEngineSubmitStrategy.java b/application/src/main/java/org/thingsboard/server/service/queue/processing/AbstractTbRuleEngineSubmitStrategy.java index 3801e43b7f..6f9a4c49c6 100644 --- a/application/src/main/java/org/thingsboard/server/service/queue/processing/AbstractTbRuleEngineSubmitStrategy.java +++ b/application/src/main/java/org/thingsboard/server/service/queue/processing/AbstractTbRuleEngineSubmitStrategy.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.service.queue.processing; +import org.thingsboard.server.common.data.StringUtils; import org.thingsboard.server.gen.transport.TransportProtos; import org.thingsboard.server.queue.common.TbProtoQueueMsg; @@ -51,7 +52,18 @@ public abstract class AbstractTbRuleEngineSubmitStrategy implements TbRuleEngine List> newOrderedMsgList = new ArrayList<>(reprocessMap.size()); for (IdMsgPair pair : orderedMsgList) { if (reprocessMap.containsKey(pair.uuid)) { - newOrderedMsgList.add(pair); + var oldValue = pair.getMsg().getValue(); + if (StringUtils.isNotEmpty(oldValue.getFailureMessage())) { + var newValue = TransportProtos.ToRuleEngineMsg.newBuilder() + .setTenantIdMSB(oldValue.getTenantIdMSB()) + .setTenantIdLSB(oldValue.getTenantIdLSB()) + .setTbMsg(oldValue.getTbMsg()) + .build(); + var newMsg = new TbProtoQueueMsg<>(pair.getMsg().getKey(), newValue, pair.getMsg().getHeaders()); + newOrderedMsgList.add(new IdMsgPair<>(pair.getUuid(), newMsg)); + } else { + newOrderedMsgList.add(pair); + } } } orderedMsgList = newOrderedMsgList;