in ratis-logservice/src/main/java/org/apache/ratis/logservice/tool/VerificationTool.java [272:296]
String parseValue(ByteBuffer buff) {
if (!buff.hasArray()) {
throw new IllegalArgumentException("Require a ByteBuffer with a backing array");
}
if (valueSize == -1) {
return new String(buff.array(), buff.arrayOffset(), buff.remaining(), StandardCharsets.UTF_8);
}
int length = buff.limit() - buff.arrayOffset();
byte[] value = new byte[length];
System.arraycopy(buff.array(), buff.arrayOffset(), value, 0, length);
int dividerOffset = -1;
for (int i = 0; i < value.length; i++) {
if (value[i] == DIVIDER_BYTE) {
dividerOffset = i;
break;
}
}
// We didn't have enough space to write the divider, return all of the bytes
if (dividerOffset < 0) {
return new String(value, StandardCharsets.UTF_8);
}
return new String(value, 0, dividerOffset, StandardCharsets.UTF_8);
}