You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Charan Reddy Guttapalem (JIRA)" <ji...@apache.org> on 2016/10/19 23:23:58 UTC

[jira] [Created] (BOOKKEEPER-958) ZeroBuffer readOnlyBuffer returns ByteBuffer with 0 remaining bytes for length > 64k

Charan Reddy Guttapalem created BOOKKEEPER-958:
--------------------------------------------------

             Summary: ZeroBuffer readOnlyBuffer returns ByteBuffer with 0 remaining bytes for length > 64k
                 Key: BOOKKEEPER-958
                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-958
             Project: Bookkeeper
          Issue Type: Bug
            Reporter: Charan Reddy Guttapalem
            Assignee: Charan Reddy Guttapalem
            Priority: Trivial


in ZeroBuffer
here, if the length is > zeroBytes.length (64K), then it is returning zero ByteBuffer but its position is set to limit and hence its remaining will be 0, which is not expected, but if it is < 64k then its position is set to 0 and the remaining will be length.

Looking at the call hierearchy, it seems there are no callers for this function, but since this is utility class it needs to be corrected.

    public static ByteBuffer readOnlyBuffer(int length) {
        ByteBuffer buffer;
        if (length <= zeroBytes.length) {
            buffer = ByteBuffer.wrap(zeroBytes, 0, length);
        }
        else {
            buffer = ByteBuffer.allocate(length);
            put(buffer);
        }
        return buffer.asReadOnlyBuffer();
    }



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)