Skip to content

Commit e0e1dea

Browse files
authored
[ggj][codegen] fix: robustify name-based var-retrieval in GrpcServiceStub (#567)
* fix: handle wildcard-typed resrefs when parsing methods * fix: support older type-only resrefs w/o a service prefix * feat: allow example/library to lack the grpc_config file * fix: robustify name-based var-retrieval in GrpcServiceStub
1 parent ade36dc commit e0e1dea

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

src/main/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposer.java

+16-2
Original file line numberDiff line numberDiff line change
@@ -836,10 +836,24 @@ private static Expr createCallableInitExpr(
836836
}
837837
String javaStyleMethodName = callableVarName.substring(0, callableVarName.length() - sublength);
838838
List<Expr> creatorMethodArgVarExprs = null;
839+
Expr transportSettingsVarExpr =
840+
javaStyleMethodNameToTransportSettingsVarExprs.get(javaStyleMethodName);
841+
if (transportSettingsVarExpr == null && isOperation) {
842+
// Try again, in case the name dtection above was inaccurate.
843+
isOperation = false;
844+
sublength = CALLABLE_NAME.length();
845+
javaStyleMethodName = callableVarName.substring(0, callableVarName.length() - sublength);
846+
transportSettingsVarExpr =
847+
javaStyleMethodNameToTransportSettingsVarExprs.get(javaStyleMethodName);
848+
}
849+
Preconditions.checkNotNull(
850+
transportSettingsVarExpr,
851+
String.format(
852+
"No transport settings variable found for method name %s", javaStyleMethodName));
839853
if (isOperation) {
840854
creatorMethodArgVarExprs =
841855
Arrays.asList(
842-
javaStyleMethodNameToTransportSettingsVarExprs.get(javaStyleMethodName),
856+
transportSettingsVarExpr,
843857
MethodInvocationExpr.builder()
844858
.setExprReferenceExpr(settingsVarExpr)
845859
.setMethodName(String.format("%sOperationSettings", javaStyleMethodName))
@@ -849,7 +863,7 @@ private static Expr createCallableInitExpr(
849863
} else {
850864
creatorMethodArgVarExprs =
851865
Arrays.asList(
852-
javaStyleMethodNameToTransportSettingsVarExprs.get(javaStyleMethodName),
866+
transportSettingsVarExpr,
853867
MethodInvocationExpr.builder()
854868
.setExprReferenceExpr(settingsVarExpr)
855869
.setMethodName(String.format("%sSettings", javaStyleMethodName))

0 commit comments

Comments
 (0)