UPDATE:
Looks like what you've run into are a couple of existing bugs: Fault in handling of UTF8Strings within the Struct class and XMLStreamReaderImpl ignoring xml encoding attribute?
Passing certain Strings to the UTF8String set method results in the
field boundary of the memory block which the UTF8String is mapped to
in the backing ByteBuffer being exceeded. This appears to result from
certain UTF-8 multi-byte characters expanding the string.
Seems there's a problem with the data you're processing or there's a bug in the library. Take a look at the source code of UTF8ByteBufferReader. The exception is being thrown from the following method
private int read2(byte b) throws IOException
towards the bottom of that method you'll see
throw new CharConversionException("Invalid UTF-8 Encoding");
I would double-check that the data you're receiving is in fact UTF-8, because that library doesn't seem to think it is...
If all you're doing is trying to decode a UTF8 stream, you can just use regular Java for that. There are a lot of UTF8 examples online. Also, you might need to use Apache's BOMInputStream.
You can also just read in the bytes and periodically use Charset#decode of StandardCharsets.UTF_8