private static String decodeString()

in src/main/java/org/apache/maven/shared/dependency/analyzer/asm/ConstantPoolParser.java [207:229]


    private static String decodeString(ByteBuffer buf) {
        int size = buf.getChar();
        int oldLimit = buf.limit();
        // Explicit cast for compatibility with covariant return type on JDK 9's ByteBuffer
        ((Buffer) buf).limit(buf.position() + size);
        StringBuilder sb = new StringBuilder(size + (size >> 1) + 16);
        while (buf.hasRemaining()) {
            byte b = buf.get();
            if (b > 0) {
                sb.append((char) b);
            } else {
                int b2 = buf.get();
                if ((b & OXF0) != OXE0) {
                    sb.append((char) ((b & 0x1F) << 6 | b2 & OX3F));
                } else {
                    int b3 = buf.get();
                    sb.append((char) ((b & 0x0F) << 12 | (b2 & OX3F) << 6 | b3 & OX3F));
                }
            }
        }
        ((Buffer) buf).limit(oldLimit);
        return sb.toString();
    }