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

Jeff Whiting commented on THRIFT-772:
-------------------------------------

Our work around for the broken equals function (which isn't very pretty):

for (Response._Fields f : Response._Fields.values())
{
        Object value1 = o1.getFieldValue(f);
        Object value2 = o2.getFieldValue(f);
        if (value1 instanceof byte[])
        {
                value1 = ByteBuffer.wrap((byte[])value1);
                value2 = ByteBuffer.wrap((byte[])value2);
        }
        if (!value1.equals(value2))
        {
                return false;
        }
}
return true;

> __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: Java - Library
>    Affects Versions: 0.2
>         Environment: Linux, thrift release 0.2.0 with patch Thrift-746 and 
> Thrift-663
>            Reporter: david herviou
>              Labels: serialization
>         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.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to