diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index 3d8da1e..ee58ad5 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -2420,17 +2420,17 @@
       indent_up();
     }
 
-    if (field->get_type()->is_base_type() && ((t_base_type*)(field->get_type()))->is_binary()) {
+    if (get_true_type(field->get_type())->is_base_type() && ((t_base_type*)(get_true_type(field->get_type())))->is_binary()) {
       indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);"
                   << endl;
     } else if ((field->get_type()->is_set()) &&
-               (((t_set*) field->get_type())->get_elem_type()->is_base_type()) &&
-               (((t_base_type*) ((t_set*) field->get_type())->get_elem_type())->is_binary())) {
+               (get_true_type(((t_set*) field->get_type())->get_elem_type())->is_base_type()) &&
+               (((t_base_type*) get_true_type(((t_set*) field->get_type())->get_elem_type()))->is_binary())) {
       indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);"
                   << endl;
     } else if ((field->get_type()->is_list()) &&
-               (((t_list*) field->get_type())->get_elem_type()->is_base_type()) &&
-               (((t_base_type*) ((t_list*) field->get_type())->get_elem_type())->is_binary())) {
+               (get_true_type(((t_list*) field->get_type())->get_elem_type())->is_base_type()) &&
+               (((t_base_type*) get_true_type(((t_list*) field->get_type())->get_elem_type()))->is_binary())) {
       indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);"
                   << endl;
     } else {
