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

Bryan Duxbury commented on THRIFT-772:
--------------------------------------

I'll glance at your unit test when I get a chance, but are your struct's fields 
"default" (that is, not required or optional)? If so, then no matter what the 
state of isset is, native fields will be serialized, and thus deserialized.

This is a holdover from earlier times which I'm not particularly crazy about, 
but the good news is that you can work around it by making optional/required 
explicit on every field.

> __isset_bit_vector state before serialization differs from state after 
> unserialization on native field
> ------------------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-772
>                 URL: https://issues.apache.org/jira/browse/THRIFT-772
>             Project: Thrift
>          Issue Type: Bug
>          Components: Library (Java)
>    Affects Versions: 0.2
>         Environment: Linux, thrift release 0.2.0 with patch Thrift-746 and 
> Thrift-663
>            Reporter: david herviou
>         Attachments: thrift-issue-bitset-nativefields.tgz
>
>
> Once java classes have been generated it is possible to test if the fields 
> have been set or not using the method isSetXXX().
> Once one of this java class is instanciated, all call to field.isSetXXX() are 
> returning false which is a good thing (this method ask for 
> __isset_bit_vector.get(XXX))
> Now if you serialize the previous object and unserialize it (without doing 
> any changes on it) the following occured : all fields that corresponds to 
> native data are returning true when isSetXXX() is invoked.
> Consequently, the operation unserialise(serialize(object)) is not an identity 
> function.
> This is mainly due that the __isset_bit_vector is not serialize and rebuild 
> during the  unserialize operation.
> Any idea how to fix this ?

-- 
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