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

Nathaniel Cook commented on THRIFT-1624:
----------------------------------------

Yes, they are the same version. I compiled them both from trunk.
                
> Isset Generated differently on different platforms
> --------------------------------------------------
>
>                 Key: THRIFT-1624
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1624
>             Project: Thrift
>          Issue Type: Bug
>          Components: Compiler (General), Java - Compiler
>    Affects Versions: 0.9
>         Environment: CentOS 5 Mac OS X
>            Reporter: Nathaniel Cook
>
> Genereated java code is different depending on the environment. 
> Example Service:
> {code}
> service IssetService
> {
>    bool test()
> }
> {code}
> CentOS 5 result:
> {code:java}
>     private void readObject(java.io.ObjectInputStream in) throws 
> java.io.IOException, ClassNotFoundException {
>       try {
>         read(new org.apache.thrift.protocol.TCompactProtocol(new 
> org.apache.thrift.transport.TIOStreamTransport(in)));
>       } catch (org.apache.thrift.TException te) {
>         throw new java.io.IOException(te);
>       }
>     }
> {code}
> Mac OS X result:
> {code:java}
>     private void readObject(java.io.ObjectInputStream in) throws 
> java.io.IOException, ClassNotFoundException {
>       try {
>         // it doesn't seem like you should have to do this, but java 
> serialization is wacky, and doesn't call the default constructor.
>         __isset_bitfield = 0;
>         read(new org.apache.thrift.protocol.TCompactProtocol(new 
> org.apache.thrift.transport.TIOStreamTransport(in)));
>       } catch (org.apache.thrift.TException te) {
>         throw new java.io.IOException(te);
>       }
>     }
> {code}
> The inconsistency is a problem as we have a hybrid env. Also we are unsure 
> which is correct.
> I have dug around in the code and is seems to come down to this method 
> "tstruct->is_union()". On CentOS the struct is a union so the 'isset' code is 
> omitted. While the opposite is true for Mac OS X. I am still unsure as to the 
> cause but before I submit a patch I need to know which is correct.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to