[ 
https://issues.apache.org/jira/browse/THRIFT-883?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12982799#action_12982799
 ] 

Sean Bridges commented on THRIFT-883:
-------------------------------------

What will thrift policy with mutating the position and mark fields on a 
ByteBuffer be when non array backed ByteBuffers are supported.

For example, is this code that retries a thrift operation multiple times 
correct,

ByteBuffer buf = ...;
SomeThriftObject t = ...;
t.setBinaryField(buf);

for(int i =1; i < 5; i++) {
  //will this modify postion() on buf? 
  //will it call rewind() on buf before reading?
  someThriftClient.doSomething(t);
  break;
}

I don't see a good api to bulk copy from a ByteBuffer that is not backed by an 
array unless you change the position variable.  

Perhaps Thrift always calls rewind() on the ByteBuffer before reading from it.

> Extend ByteBuffer support to non-array-backed ByteBuffers
> ---------------------------------------------------------
>
>                 Key: THRIFT-883
>                 URL: https://issues.apache.org/jira/browse/THRIFT-883
>             Project: Thrift
>          Issue Type: Improvement
>          Components: Java - Library
>    Affects Versions: 0.4
>            Reporter: Bryan Duxbury
>            Assignee: Bryan Duxbury
>             Fix For: 0.7
>
>         Attachments: TBinaryProtocol-writeBinary.patch
>
>
> Binary fields are backed by ByteBuffers that wrap byte arrays, and all the 
> protocol code assumes that every ByteBuffer is of this type. However, now 
> that the structs setters allow ByteBuffer arguments, it would be nice to 
> support other kinds of ByteBuffers, like those that are allocated direct.  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to