Author: bryanduxbury
Date: Fri Mar 13 18:28:40 2009
New Revision: 753337

URL: http://svn.apache.org/viewvc?rev=753337&view=rev
Log:
THRIFT-368. java: setFieldValue should allow nulls for all field types

After this patch, setFieldValue will treat a set with a null as an unset.


Modified:
    incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc

Modified: incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
URL: 
http://svn.apache.org/viewvc/incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc?rev=753337&r1=753336&r2=753337&view=diff
==============================================================================
--- incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc 
(original)
+++ incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc Fri 
Mar 13 18:28:40 2009
@@ -1194,8 +1194,11 @@
 void t_java_generator::generate_reflection_setters(ostringstream& out, t_type* 
type, string field_name, string cap_name) {
   indent(out) << "case " << upcase_string(field_name) << ":" << endl;
   indent_up();
-
-  indent(out) << "set" << cap_name << "((" << type_name(type, true, false) << 
")value);" << endl;
+  indent(out) << "if (value == null) {" << endl;
+  indent(out) << "  unset" << get_cap_name(field_name) << "();" << endl;
+  indent(out) << "} else {" << endl;
+  indent(out) << "  set" << cap_name << "((" << type_name(type, true, false) 
<< ")value);" << endl;
+  indent(out) << "}" << endl;
   indent(out) << "break;" << endl << endl;
 
   indent_down();


Reply via email to