THRIFT-152. java: Set isset appropriately in structure constructors
authorDavid Reiss <dreiss@apache.org>
Wed, 8 Oct 2008 04:49:25 +0000 (04:49 +0000)
committerDavid Reiss <dreiss@apache.org>
Wed, 8 Oct 2008 04:49:25 +0000 (04:49 +0000)
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@702697 13f79535-47bb-0310-9956-ffa450edef68

compiler/cpp/src/generate/t_java_generator.cc

index c9baf68..49d8594 100644 (file)
@@ -635,7 +635,13 @@ void t_java_generator::generate_java_struct_definition(ofstream &out,
     for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
       indent(out) << "this." << (*m_iter)->get_name() << " = " <<
         (*m_iter)->get_name() << ";" << endl;
-      indent(out) << "this.__isset." << (*m_iter)->get_name() << " = true;" << endl;
+      indent(out) << "this.__isset." << (*m_iter)->get_name() << " = ";
+      if (type_can_be_null((*m_iter)->get_type())) {
+        out << "(" << (*m_iter)->get_name() << " != null)";
+      } else {
+        out << "true";
+      }
+      out << ";" << endl;
     }
     indent_down();
     indent(out) << "}" << endl << endl;