[ https://issues.apache.org/jira/browse/THRIFT-1038?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13057369#comment-13057369 ]
ojciec pijo commented on THRIFT-1038: ------------------------------------- this change breaks basic java serialization rule - does not keep references after deserialization. I was using thrift objects in a bigger structure that was serialized using default java mechanism (by Spring Web Flow actually). since I didn't use ByteBuffer, it worked fine. now, after upgrading to Thrift 6, instead of one instance of particular object, I get multiple instances after deserialization because readObject method that have been added. > Generated Java code for structures containing binary fields (or collections > thereof) are not serializable (in the Java sense) even though they implement > java.io.Serializable > ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: THRIFT-1038 > URL: https://issues.apache.org/jira/browse/THRIFT-1038 > Project: Thrift > Issue Type: Bug > Components: Java - Compiler > Affects Versions: 0.3, 0.4, 0.5 > Environment: All > Reporter: Mathias Herberts > Assignee: Mathias Herberts > Priority: Blocker > Fix For: 0.6, 0.7 > > Attachments: THRIFT-1038.patch, thrift-1038-v2.patch > > > Since THRIFT-830, binary fields are implemented using ByteBuffer instead of > byte[], but ByteBuffer are not serializable (in the Java sense), therefore > the generated Java classes are not serializable either. > Even though one might expect the Thrift serialization to be used instead of > Java serialization, there are situations where the serialization of the > classes is not in the hands of the user (think for example about the > HttpSession offline storage done in Tomcat), therefore we MUST generate Java > classes that are serializable in the Java sense. > I'm finishing up a compiler patch to generate writeObject/readObject methods > that will make the generated classes Serializable again, will submit it > tonight. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira