in ratis-logservice/src/main/java/org/apache/ratis/logservice/tool/VerificationTool.java [238:270]
ByteBuffer createValue(String prefix) {
if (valueSize == -1) {
return ByteBuffer.wrap(prefix.getBytes(StandardCharsets.UTF_8));
}
byte[] value = new byte[valueSize];
byte[] prefixBytes = prefix.getBytes(StandardCharsets.UTF_8);
// Write as much of the prefix as possible
if (prefixBytes.length > valueSize) {
System.arraycopy(prefixBytes, 0, value, 0, valueSize);
return ByteBuffer.wrap(value);
}
// Write the full prefix
System.arraycopy(prefixBytes, 0, value, 0, prefixBytes.length);
int bytesWritten = prefixBytes.length;
// Write the divider (but only if we can write the whole thing)
if (bytesWritten + 1 > valueSize) {
return ByteBuffer.wrap(value);
}
value[bytesWritten] = DIVIDER_BYTE;
bytesWritten += 1;
// Generate random data to pad the value
int bytesToGenerate = valueSize - bytesWritten;
Random r = new Random();
byte[] suffix = new byte[bytesToGenerate];
r.nextBytes(suffix);
System.arraycopy(suffix, 0, value, bytesWritten, suffix.length);
return ByteBuffer.wrap(value);
}