diff options
author | Adam Cozzette <acozzette@google.com> | 2017-06-02 13:45:57 -0700 |
---|---|---|
committer | Adam Cozzette <acozzette@google.com> | 2017-06-02 13:45:57 -0700 |
commit | e9c15d601e1f424d4e2c2b004b00cd6efd394d3e (patch) | |
tree | 190ac885bb50f9c6356d4f035a8b707093d51815 /src/google | |
parent | d6470abef1ca76c40e6da3b4445b7c32f1d0e2e3 (diff) | |
download | protobuf-e9c15d601e1f424d4e2c2b004b00cd6efd394d3e.tar.gz protobuf-e9c15d601e1f424d4e2c2b004b00cd6efd394d3e.tar.bz2 protobuf-e9c15d601e1f424d4e2c2b004b00cd6efd394d3e.zip |
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.
Diffstat (limited to 'src/google')
-rw-r--r-- | src/google/protobuf/compiler/java/java_shared_code_generator.cc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/google/protobuf/compiler/java/java_shared_code_generator.cc b/src/google/protobuf/compiler/java/java_shared_code_generator.cc index 7bd5ad7a..f73bfb04 100644 --- a/src/google/protobuf/compiler/java/java_shared_code_generator.cc +++ b/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)); } // ----------------------------------------------------------------- |