summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorHernan Silberman <hernan@n3twork.com>2022-06-08 11:29:43 -0700
committerJens Geyer <Jens-G@users.noreply.github.com>2022-08-25 22:19:36 +0200
commitd5c6697bce9efbab0974e6f99df822355335df8a (patch)
treef027852c265280e913ee9e64de952df7f9280600 /compiler
parentbdfde857a802e443a2cab1717744dee8e56cbe76 (diff)
downloadthrift-d5c6697bce9efbab0974e6f99df822355335df8a.tar.gz
THRIFT-4086: Add missing calls to get_true_type when generating validator + metadata code
Client: java
Diffstat (limited to 'compiler')
-rw-r--r--compiler/cpp/src/thrift/generate/t_java_generator.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/cpp/src/thrift/generate/t_java_generator.cc b/compiler/cpp/src/thrift/generate/t_java_generator.cc
index 3ce1450b1..7dfd10f52 100644
--- a/compiler/cpp/src/thrift/generate/t_java_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_java_generator.cc
@@ -2192,7 +2192,7 @@ void t_java_generator::generate_java_validator(ostream& out, t_struct* tstruct)
out << indent() << "// check for sub-struct validity" << endl;
for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) {
- t_type* type = (*f_iter)->get_type();
+ t_type* type = get_true_type((*f_iter)->get_type());
if (type->is_struct() && !((t_struct*)type)->is_union()) {
out << indent() << "if (" << (*f_iter)->get_name() << " != null) {" << endl;
out << indent() << " " << (*f_iter)->get_name() << ".validate();" << endl;
@@ -2965,7 +2965,8 @@ void t_java_generator::generate_field_value_meta_data(std::ostream& out, t_type*
out << endl;
indent_up();
indent_up();
- if (type->is_struct() || type->is_xception()) {
+ t_type* ttype = get_true_type(type);
+ if (ttype->is_struct() || ttype->is_xception()) {
indent(out) << "new "
"org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType."
"STRUCT, "