All ByteBuffers the client uses should be slice()ed
---------------------------------------------------

                 Key: THRIFT-1058
                 URL: https://issues.apache.org/jira/browse/THRIFT-1058
             Project: Thrift
          Issue Type: Bug
    Affects Versions: 0.6
            Reporter: ryan rawson


Right now the code does something like yay so:

return ByteBuffer.wrap(array, pos, len);

The only problem is that .wrap(byte[],int,int) returns a ByteBuffer with 
position equal to pos and limit set to pos+len. Which means users cant used 
'rewind' or position(0).  

It would be cleaner if the contract was "ByteBuffers will have position=0, 
limit=how much data you have".

The way to accomplish this would be to:

return ByteBuffer.wrap(array, pos, len).slice();

In exchange for 1 extra object alloc (which the GC can clean up quick) we get 
the benefit of a easier to use BB interface.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to