Thrift: Make default values for base types work in Java.
authorDavid Reiss <dreiss@apache.org>
Tue, 18 Dec 2007 02:54:06 +0000 (02:54 +0000)
committerDavid Reiss <dreiss@apache.org>
Tue, 18 Dec 2007 02:54:06 +0000 (02:54 +0000)
Summary:
The Java generator wasn't setting default values for base types
in the zero argument constructor.  This check was probably brought over
from the C++ generator, where base types are given their default values
in the member variable initializer list (or whatever that thing is called).

Blame Rev: Somewhere in the mysterious past.  I tried to find it, but failed.

Reviewed By: mcslee

Test Plan: Recompiled Thrift and thrifted a file that showed the bug.

Revert Plan: ok

Other Notes:
Bug reported by Jake Luciani.

git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665398 13f79535-47bb-0310-9956-ffa450edef68

compiler/cpp/src/generate/t_java_generator.cc

index 93c2fc9..b49a005 100644 (file)
@@ -400,7 +400,7 @@ void t_java_generator::generate_java_struct_definition(ofstream &out,
   indent_up();
   for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
     t_type* t = get_true_type((*m_iter)->get_type());
-    if (!t->is_base_type() && (*m_iter)->get_value() != NULL) {
+    if ((*m_iter)->get_value() != NULL) {
       print_const_value(out, "this." + (*m_iter)->get_name(), t, (*m_iter)->get_value(), true, true);
     }
   }