@@ -824,39 +824,34 @@ static LongrunningOperation parseLro(
824
824
boolean isResponseTypeNameShortOnly = lastDotIndex < 0 ;
825
825
String responseTypeShortName =
826
826
lastDotIndex >= 0 ? responseTypeName .substring (lastDotIndex + 1 ) : responseTypeName ;
827
+ // When only shortname is provided, match on same proto package as method (See
828
+ // https://aip.dev/151)
829
+ String responseTypeFullName =
830
+ isResponseTypeNameShortOnly
831
+ ? methodDescriptor .getFile ().getPackage () + "." + responseTypeShortName
832
+ : responseTypeName ;
827
833
828
834
lastDotIndex = metadataTypeName .lastIndexOf ('.' );
829
835
boolean isMetadataTypeNameShortOnly = lastDotIndex < 0 ;
830
836
String metadataTypeShortName =
831
837
lastDotIndex >= 0 ? metadataTypeName .substring (lastDotIndex + 1 ) : metadataTypeName ;
838
+ // When only shortname is provided, match on same proto package as method (See
839
+ // https://aip.dev/151)
840
+ String metadataTypeFullName =
841
+ isMetadataTypeNameShortOnly
842
+ ? methodDescriptor .getFile ().getPackage () + "." + metadataTypeShortName
843
+ : metadataTypeName ;
832
844
833
845
// The messageTypes map keys to the Java fully-qualified name.
834
846
for (Map .Entry <String , Message > messageEntry : messageTypes .entrySet ()) {
835
- String messageKey = messageEntry .getKey ();
836
- int messageLastDotIndex = messageEntry .getKey ().lastIndexOf ('.' );
837
- String messageShortName =
838
- messageLastDotIndex >= 0 ? messageKey .substring (messageLastDotIndex + 1 ) : messageKey ;
839
- if (responseMessage == null ) {
840
- if (isResponseTypeNameShortOnly && responseTypeName .equals (messageShortName )) {
841
- responseMessage = messageEntry .getValue ();
842
- } else if (!isResponseTypeNameShortOnly && responseTypeShortName .equals (messageShortName )) {
843
- // Ensure that the full proto name matches.
844
- Message candidateMessage = messageEntry .getValue ();
845
- if (candidateMessage .fullProtoName ().equals (responseTypeName )) {
846
- responseMessage = candidateMessage ;
847
- }
848
- }
847
+ Message candidateMessage = messageEntry .getValue ();
848
+ if (responseMessage == null
849
+ && candidateMessage .fullProtoName ().equals (responseTypeFullName )) {
850
+ responseMessage = candidateMessage ;
849
851
}
850
- if (metadataMessage == null ) {
851
- if (isMetadataTypeNameShortOnly && metadataTypeName .equals (messageShortName )) {
852
- metadataMessage = messageEntry .getValue ();
853
- } else if (!isMetadataTypeNameShortOnly && metadataTypeShortName .equals (messageShortName )) {
854
- // Ensure that the full proto name matches.
855
- Message candidateMessage = messageEntry .getValue ();
856
- if (candidateMessage .fullProtoName ().equals (metadataTypeName )) {
857
- metadataMessage = candidateMessage ;
858
- }
859
- }
852
+ if (metadataMessage == null
853
+ && candidateMessage .fullProtoName ().equals (metadataTypeFullName )) {
854
+ metadataMessage = candidateMessage ;
860
855
}
861
856
}
862
857
0 commit comments