THRIFT-3089 Assigning default ENUM values results in non-compilable java code if java namespace is not defined
Client: Java
Patch: Anna Dymek <aadymek@gmail.com>
This closes #490
diff --git a/compiler/cpp/src/generate/t_java_generator.cc b/compiler/cpp/src/generate/t_java_generator.cc
index 1b1963a..c45c798 100644
--- a/compiler/cpp/src/generate/t_java_generator.cc
+++ b/compiler/cpp/src/generate/t_java_generator.cc
@@ -700,8 +700,11 @@
throw "compiler error: no const of base type " + t_base_type::t_base_name(tbase);
}
} else if (type->is_enum()) {
- render << type->get_program()->get_namespace("java") << "."
- << value->get_identifier_with_parent();
+ std::string namespace_prefix = type->get_program()->get_namespace("java");
+ if (namespace_prefix.length() > 0) {
+ namespace_prefix += ".";
+ }
+ render << namespace_prefix << value->get_identifier_with_parent();
} else {
string t = tmp("tmp");
print_const_value(out, t, type, value, true);