Index: third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc |
diff --git a/third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc b/third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc |
index b67eeb5326c8f255df4c84198eb13277d734e543..ff1865b1784dc3ae6ea553bb1570bc27e9976d71 100644 |
--- a/third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc |
+++ b/third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc |
@@ -79,9 +79,11 @@ void SetPrimitiveVariables(const FieldDescriptor* descriptor, |
" throw new NullPointerException();\n" |
" }\n"; |
(*variables)["writeString"] = |
- "com.google.protobuf.GeneratedMessage.writeString"; |
+ "com.google.protobuf.GeneratedMessage" + GeneratedCodeVersionSuffix() + |
+ ".writeString"; |
(*variables)["computeStringSize"] = |
- "com.google.protobuf.GeneratedMessage.computeStringSize"; |
+ "com.google.protobuf.GeneratedMessage" + GeneratedCodeVersionSuffix() + |
+ ".computeStringSize"; |
// TODO(birdo): Add @deprecated javadoc when generating javadoc is supported |
// by the proto compiler |
@@ -712,7 +714,13 @@ void RepeatedImmutableStringFieldGenerator:: |
GenerateInterfaceMembers(io::Printer* printer) const { |
WriteFieldDocComment(printer, descriptor_); |
printer->Print(variables_, |
- "$deprecation$com.google.protobuf.ProtocolStringList\n" |
+ // NOTE: the same method in the implementation class actually returns |
+ // com.google.protobuf.ProtocolStringList (a subclass of List). It's |
+ // changed between protobuf 2.5.0 release and protobuf 2.6.1 release. |
+ // To retain binary compatibility with both 2.5.0 and 2.6.1 generated |
+ // code, we make this interface method return List so both methods |
+ // with different return types exist in the compiled byte code. |
+ "$deprecation$java.util.List<java.lang.String>\n" |
" get$capitalized_name$List();\n"); |
WriteFieldDocComment(printer, descriptor_); |
printer->Print(variables_, |