diff --git a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java index b12135b301..da1c9a0817 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java +++ b/dao/src/main/java/org/thingsboard/server/dao/event/BaseEventService.java @@ -37,7 +37,7 @@ import java.util.Optional; @Slf4j public class BaseEventService implements EventService { - private static final int MAX_DEBUG_EVENT_IN_BYTES = 10 * 1024; + private static final int MAX_DEBUG_EVENT_SYMBOLS = 4 * 1024; @Autowired public EventDao eventDao; @@ -66,12 +66,12 @@ public class BaseEventService implements EventService { } private void checkAndTruncateDebugEvent(Event event) { - if (event.getType().startsWith("DEBUG")) { + if (event.getType().startsWith("DEBUG") && event.getBody() != null && event.getBody().has("data")) { String dataStr = event.getBody().get("data").asText(); - int dataSize = dataStr.getBytes(StandardCharsets.UTF_8).length; - if (dataSize > MAX_DEBUG_EVENT_IN_BYTES) { - ((ObjectNode) event.getBody()).put("data", dataStr.substring(0, 1024)); - log.trace("[{}] Event was truncated.", event.getId()); + int length = dataStr.length(); + if (length > MAX_DEBUG_EVENT_SYMBOLS) { + ((ObjectNode) event.getBody()).put("data", dataStr.substring(0, MAX_DEBUG_EVENT_SYMBOLS) + "...[truncated " + (length - MAX_DEBUG_EVENT_SYMBOLS) + " symbols]"); + log.trace("[{}] Event was truncated: {}", event.getId(), dataStr); } } }