[
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