@@ -824,39 +824,34 @@ static LongrunningOperation parseLro(
824824 boolean isResponseTypeNameShortOnly = lastDotIndex < 0 ;
825825 String responseTypeShortName =
826826 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 ;
827833
828834 lastDotIndex = metadataTypeName .lastIndexOf ('.' );
829835 boolean isMetadataTypeNameShortOnly = lastDotIndex < 0 ;
830836 String metadataTypeShortName =
831837 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 ;
832844
833845 // The messageTypes map keys to the Java fully-qualified name.
834846 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 ;
849851 }
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 ;
860855 }
861856 }
862857
0 commit comments