in gflog-core/src/main/java/com/epam/deltix/gflog/core/util/Util.java [249:278]
public static int limitUtf8Length(final Buffer bytes, final int offset, final int length, final int limit) {
if (length <= limit) {
return length;
}
int result = limit;
while (result > 0) {
final int b = bytes.getByte(offset + result - 1);
if (b >= 0) {
break;
}
--result;
if ((b & 0b11000000) == 0b11000000) {
final int size = ((b & 0b11100000) == 0b11000000) ? 2 :
((b & 0b11110000) == 0b11100000) ? 3 : 4;
if (limit - result >= size) {
result = limit;
}
break;
}
}
return result;
}