@Override
    public <T> void handleUnknownField(int fieldNumber, Schema<T> schema) throws IOException
    {
        if (offset + 2 > limit && !readable(2))
            throw new ProtostuffException("Truncated message.");

        final int size = buffer[offset++] | (buffer[offset++] << 8);
        if (offset + size > limit)
        {
            int toRead = size - (limit - offset), read = 0;
            // read until toRead
            do
            {
                read = in.read(buffer, 0, buffer.length);
                if (read == -1)
                    throw new ProtostuffException("Truncated message.");

                toRead -= read;
            } while (toRead > 0);

            offset = read - (-toRead);
            limit = read;

            return;
        }

        offset += size;
    }
Returns true if there are {@code minimum} bytes available for reading.
<p>
The caller is responsible that the arg {@code minimum} is not larger than the buffer size.
protostuff-kvp/src/main/java/io/protostuff/KvpInput.java