From df3b987dceffa9222cd8bb52c972cfa269c391c8 Mon Sep 17 00:00:00 2001 From: "hu,mingming" Date: Tue, 6 Dec 2022 14:50:19 +0800 Subject: [PATCH] fix StringIndexOutOfBoundsException in VARCHAR String type. --- src/com/serotonin/modbus4j/locator/StringLocator.java | 2 +- src_cdc/com/serotonin/cdc/modbus4j/locator/StringLocator.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/serotonin/modbus4j/locator/StringLocator.java b/src/com/serotonin/modbus4j/locator/StringLocator.java index 6825e33..c26e9de 100644 --- a/src/com/serotonin/modbus4j/locator/StringLocator.java +++ b/src/com/serotonin/modbus4j/locator/StringLocator.java @@ -100,7 +100,7 @@ public String bytesToValueRealOffset(byte[] data, int offset) { if (nullPos == -1) return new String(data, offset, length, charset); - return new String(data, offset, nullPos, charset); + return new String(data, offset, nullPos-offset, charset); } throw new RuntimeException("Unsupported data type: " + dataType); diff --git a/src_cdc/com/serotonin/cdc/modbus4j/locator/StringLocator.java b/src_cdc/com/serotonin/cdc/modbus4j/locator/StringLocator.java index 5c403e5..2845a7f 100644 --- a/src_cdc/com/serotonin/cdc/modbus4j/locator/StringLocator.java +++ b/src_cdc/com/serotonin/cdc/modbus4j/locator/StringLocator.java @@ -69,7 +69,7 @@ public Object bytesToValueRealOffset(byte[] data, int offset) { if (nullPos == -1) return new String(data, offset, length, charset); - return new String(data, offset, nullPos, charset); + return new String(data, offset, nullPos-offset, charset); } } catch (Exception e) {