[ https://issues.apache.org/jira/browse/THRIFT-1528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nate Rosenblum updated THRIFT-1528: ----------------------------------- Attachment: 0002-Mark-defaulted-optionals-set-in-C-sharp.patch 0001-Mark-defaulted-optionals-set-in-Java.patch I've attached two patches to bring Java and C# defaulted-optional serialization in line with C++ and Python. The generated C# code looks like it's doing the right thing, but I am not an expert in that language so somebody should probably double check. > Iconsistency in optional fields between Java/C# and python > ---------------------------------------------------------- > > Key: THRIFT-1528 > URL: https://issues.apache.org/jira/browse/THRIFT-1528 > Project: Thrift > Issue Type: Bug > Components: Python - Compiler > Affects Versions: 0.8 > Reporter: Stefan Gmeiner > Priority: Minor > Attachments: 0001-Mark-defaulted-optionals-set-in-Java.patch, > 0002-Mark-defaulted-optionals-set-in-C-sharp.patch > > > If a struct contains optional fields with default values the generated python > code serialize differently than Java or C# code. > In Java or C# optional fields are only serialized if a field was set by the > client. If not the field is omited during serialization. This is possible > because C#/Java maintains for each field a 'isset'-boolean which records if a > field was set or not. > However the generated python code does not have such a 'isset'-structure. It > writes every field which is not equal None. As the constructor initialize the > optional fields with their default value, these fields are written whether > they are set or not. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira