ByteBuffer utf8buf = staticBuffers.byteBuffer(UTF8_BUFFER, 1024 * 8);
byte[] rawUtf8Buf = utf8buf.array();
CharsetDecoder dec = Charset.forName("UTF-8").newDecoder();
int expectedLen = (len > 0 ? (int)(dec.averageCharsPerByte() * len) + 1 : 1024);
CharBuffer cb = staticBuffers.charBuffer(UTF8_BUFFER, expectedLen);
try {
while (len != 0 || utf8buf.position() > 0) {
//read as much as possible
if (len < 0) {