Ensure that for Java, imports of .proto files with empty packages works

This fixes a compiler bug that caused a Java syntax error when one .proto file
would import another one with an empty package and java_package. This fixes
issue #3114.
pull/3176/head
Adam Cozzette 8 years ago
parent d6470abef1
commit e9c15d601e
  1. 14
      src/google/protobuf/compiler/java/java_shared_code_generator.cc

@ -182,10 +182,16 @@ void SharedCodeGenerator::GenerateDescriptors(io::Printer* printer) {
std::vector<std::pair<string, string> > dependencies;
for (int i = 0; i < file_->dependency_count(); i++) {
string filename = file_->dependency(i)->name();
string classname = FileJavaPackage(file_->dependency(i)) + "." +
name_resolver_->GetDescriptorClassName(
file_->dependency(i));
dependencies.push_back(std::make_pair(filename, classname));
string package = FileJavaPackage(file_->dependency(i));
string classname = name_resolver_->GetDescriptorClassName(
file_->dependency(i));
string full_name;
if (package.empty()) {
full_name = classname;
} else {
full_name = package + "." + classname;
}
dependencies.push_back(std::make_pair(filename, full_name));
}
// -----------------------------------------------------------------

Loading…
Cancel
Save