diff --git a/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java b/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java index 1d71e062cbb4..a92d696665d2 100644 --- a/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java +++ b/java-spanner/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/AbstractBaseUnitOfWork.java @@ -388,7 +388,11 @@ public ApiCallContext configure( if (remainingTimeout <= 0) { remainingTimeout = 1; } - return GrpcCallContext.createDefault() + // Build from the input context so existing call options + // (e.g. grpc-gcp's AFFINITY_KEY set by GapicSpannerRpc.newCallContext) + // survive the GrpcCallContext.merge() — merge rebuilds CallOptions from + // the configurator result, dropping any options it does not carry. + return ((GrpcCallContext) context) .withTimeoutDuration(Duration.ofNanos(remainingTimeout)); } return null;