diff options
author | Bryan Duxbury <bryanduxbury@apache.org> | 2009-01-29 05:38:10 +0000 |
---|---|---|
committer | Bryan Duxbury <bryanduxbury@apache.org> | 2009-01-29 05:38:10 +0000 |
commit | 1f6302fab0f338547c3a8bbb24b2ea548a9b6550 (patch) | |
tree | 200c82764d5d99f6138765d38feb2f501a5b24ee | |
parent | 986d705578f7c3189b076b43097da0ff2f5d648e (diff) | |
download | thrift-1f6302fab0f338547c3a8bbb24b2ea548a9b6550.tar.gz |
THRIFT-218. java: When validation fails on serialization/deserialization, print out the invalid object
The error thrown when validation fails now contains the toString output.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@738764 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | compiler/cpp/src/generate/t_java_generator.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc index 3e718fbe9..e99583a0a 100644 --- a/compiler/cpp/src/generate/t_java_generator.cc +++ b/compiler/cpp/src/generate/t_java_generator.cc @@ -974,14 +974,14 @@ void t_java_generator::generate_java_struct_reader(ofstream& out, indent() << "iprot.readStructEnd();" << endl << endl; // in non-beans style, check for required fields of primitive type - // (which can be checked here but no in the general validate method) + // (which can be checked here but not in the general validate method) if (!bean_style_){ out << endl << indent() << "// check for required fields of primitive type, which can't be checked in the validate method" << endl; for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) { if ((*f_iter)->get_req() == t_field::T_REQUIRED && !type_can_be_null((*f_iter)->get_type())) { out << indent() << "if (!__isset." << (*f_iter)->get_name() << ") {" << endl << - indent() << " throw new TProtocolException(\"Required field '" << (*f_iter)->get_name() << "' was not found in serialized data!\");" << endl << + indent() << " throw new TProtocolException(\"Required field '" << (*f_iter)->get_name() << "' was not found in serialized data! Struct: \" + toString());" << endl << indent() << "}" << endl; } } @@ -1012,12 +1012,12 @@ void t_java_generator::generate_java_validator(ofstream& out, if (bean_style_) { out << indent() << "if (!__isset." << (*f_iter)->get_name() << ") {" << endl << - indent() << " throw new TProtocolException(\"Required field '" << (*f_iter)->get_name() << "' is unset!\");" << endl << + indent() << " throw new TProtocolException(\"Required field '" << (*f_iter)->get_name() << "' is unset! Struct:\" + toString());" << endl << indent() << "}" << endl << endl; } else{ if (type_can_be_null((*f_iter)->get_type())) { indent(out) << "if (" << (*f_iter)->get_name() << " == null) {" << endl; - indent(out) << " throw new TProtocolException(\"Required field '" << (*f_iter)->get_name() << "' was not present!\");" << endl; + indent(out) << " throw new TProtocolException(\"Required field '" << (*f_iter)->get_name() << "' was not present! Struct: \" + toString());" << endl; indent(out) << "}" << endl; } else { indent(out) << "// alas, we cannot check '" << (*f_iter)->get_name() << "' because it's a primitive and you chose the non-beans generator." << endl; |