summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Duxbury <bryanduxbury@apache.org>2009-01-29 05:38:10 +0000
committerBryan Duxbury <bryanduxbury@apache.org>2009-01-29 05:38:10 +0000
commit1f6302fab0f338547c3a8bbb24b2ea548a9b6550 (patch)
tree200c82764d5d99f6138765d38feb2f501a5b24ee
parent986d705578f7c3189b076b43097da0ff2f5d648e (diff)
downloadthrift-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.cc8
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;