From: Bryan Duxbury Date: Fri, 13 Mar 2009 18:28:40 +0000 (+0000) Subject: THRIFT-368. java: setFieldValue should allow nulls for all field types X-Git-Tag: 0.2.0~269 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=42336c19b2a34708feb4bcddd5cde083cabb0d0d;p=common%2Fthrift.git 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. git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@753337 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc index 943878f1..abbba8b8 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -1194,8 +1194,11 @@ void t_java_generator::generate_reflection_getters(ostringstream& out, t_type* t 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();