From 9d594469dffe717cc57d66bab0686a8e5654918e Mon Sep 17 00:00:00 2001 From: Mark Herwege Date: Mon, 9 May 2022 23:05:30 +0200 Subject: [PATCH] Correct error for long thing names (#12708) Signed-off-by: Mark Herwege --- .../elroconnects/internal/util/ElroConnectsUtil.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bundles/org.openhab.binding.elroconnects/src/main/java/org/openhab/binding/elroconnects/internal/util/ElroConnectsUtil.java b/bundles/org.openhab.binding.elroconnects/src/main/java/org/openhab/binding/elroconnects/internal/util/ElroConnectsUtil.java index 7fe252eef..8c6207a7f 100644 --- a/bundles/org.openhab.binding.elroconnects/src/main/java/org/openhab/binding/elroconnects/internal/util/ElroConnectsUtil.java +++ b/bundles/org.openhab.binding.elroconnects/src/main/java/org/openhab/binding/elroconnects/internal/util/ElroConnectsUtil.java @@ -46,8 +46,10 @@ public final class ElroConnectsUtil { */ public static String encode(String input, int length) { byte[] bytes = input.getBytes(StandardCharsets.UTF_8); - String content = "@".repeat(length - bytes.length) + new String(bytes, StandardCharsets.UTF_8) + "$"; - bytes = content.getBytes(StandardCharsets.UTF_8); + String content = "@".repeat((length > bytes.length) ? (length - bytes.length) : 0) + + new String(bytes, StandardCharsets.UTF_8); + bytes = Arrays.copyOf(content.getBytes(StandardCharsets.UTF_8), length); + bytes[length] = (byte) "$".charAt(0); return HexUtils.bytesToHex(bytes); }