CharSequence (@NotNull Object compressed) { if (compressed instanceof CharSequence) return (CharSequence)compressed; ByteBuffer buffer = ByteBuffer.wrap((byte[])compressed); int len = DataInputOutputUtilRt.readINT(buffer); int uncompressedLength = DataInputOutputUtilRt.readINT(buffer) + len; ByteBuffer dest = ByteBuffer.wrap(spareBufferLocal.getBuffer(uncompressedLength), 0, uncompressedLength); decompressor().decompress(buffer, dest); dest.rewind(); char[] chars = new char[len]; for (int i=0; i<len; i++) { int c = DataInputOutputUtilRt.readINT(dest); chars[i] = (char)c; } return new String(chars); }