4242import com .google .common .util .concurrent .MoreExecutors ;
4343import java .util .concurrent .Callable ;
4444import java .util .concurrent .CancellationException ;
45+ import javax .annotation .Nullable ;
4546
4647/**
4748 * Callable that waits until either replication or Data Boost has caught up to the point it was
@@ -56,15 +57,15 @@ class AwaitConsistencyCallable extends UnaryCallable<ConsistencyRequest, Void> {
5657 private final UnaryCallable <CheckConsistencyRequest , CheckConsistencyResponse > checkCallable ;
5758 private final RetryingExecutor <CheckConsistencyResponse > executor ;
5859
59- private final TableAdminRequestContext requestContext ;
60+ @ Nullable private final TableAdminRequestContext requestContext ;
6061
6162 static AwaitConsistencyCallable create (
6263 UnaryCallable <GenerateConsistencyTokenRequest , GenerateConsistencyTokenResponse >
6364 generateCallable ,
6465 UnaryCallable <CheckConsistencyRequest , CheckConsistencyResponse > checkCallable ,
6566 ClientContext clientContext ,
6667 RetrySettings pollingSettings ,
67- TableAdminRequestContext requestContext ) {
68+ @ Nullable TableAdminRequestContext requestContext ) {
6869
6970 RetryAlgorithm <CheckConsistencyResponse > retryAlgorithm =
7071 new RetryAlgorithm <>(
@@ -78,13 +79,22 @@ static AwaitConsistencyCallable create(
7879 generateCallable , checkCallable , retryingExecutor , requestContext );
7980 }
8081
82+ static AwaitConsistencyCallable create (
83+ UnaryCallable <GenerateConsistencyTokenRequest , GenerateConsistencyTokenResponse >
84+ generateCallable ,
85+ UnaryCallable <CheckConsistencyRequest , CheckConsistencyResponse > checkCallable ,
86+ ClientContext clientContext ,
87+ RetrySettings pollingSettings ) {
88+ return create (generateCallable , checkCallable , clientContext , pollingSettings , null );
89+ }
90+
8191 @ VisibleForTesting
8292 AwaitConsistencyCallable (
8393 UnaryCallable <GenerateConsistencyTokenRequest , GenerateConsistencyTokenResponse >
8494 generateCallable ,
8595 UnaryCallable <CheckConsistencyRequest , CheckConsistencyResponse > checkCallable ,
8696 RetryingExecutor <CheckConsistencyResponse > executor ,
87- TableAdminRequestContext requestContext ) {
97+ @ Nullable TableAdminRequestContext requestContext ) {
8898 this .generateCallable = generateCallable ;
8999 this .checkCallable = checkCallable ;
90100 this .executor = executor ;
@@ -98,22 +108,30 @@ public ApiFuture<Void> futureCall(
98108 // If the token is already provided, skip generation and poll directly.
99109 if (consistencyRequest .getConsistencyToken () != null ) {
100110 CheckConsistencyRequest request =
101- consistencyRequest .toCheckConsistencyProto (
102- requestContext , consistencyRequest .getConsistencyToken ());
111+ requestContext == null
112+ ? consistencyRequest .toCheckConsistencyProto (consistencyRequest .getConsistencyToken ())
113+ : consistencyRequest .toCheckConsistencyProto (
114+ requestContext , consistencyRequest .getConsistencyToken ());
103115 return pollToken (request , apiCallContext );
104116 }
105117
106118 ApiFuture <GenerateConsistencyTokenResponse > tokenFuture =
107- generateToken (consistencyRequest .toGenerateTokenProto (requestContext ), apiCallContext );
119+ generateToken (
120+ requestContext == null
121+ ? consistencyRequest .toGenerateTokenProto ()
122+ : consistencyRequest .toGenerateTokenProto (requestContext ),
123+ apiCallContext );
108124
109125 return ApiFutures .transformAsync (
110126 tokenFuture ,
111127 new ApiAsyncFunction <GenerateConsistencyTokenResponse , Void >() {
112128 @ Override
113129 public ApiFuture <Void > apply (GenerateConsistencyTokenResponse input ) {
114130 CheckConsistencyRequest request =
115- consistencyRequest .toCheckConsistencyProto (
116- requestContext , input .getConsistencyToken ());
131+ requestContext == null
132+ ? consistencyRequest .toCheckConsistencyProto (input .getConsistencyToken ())
133+ : consistencyRequest .toCheckConsistencyProto (
134+ requestContext , input .getConsistencyToken ());
117135 return pollToken (request , apiCallContext );
118136 }
119137 },
0 commit comments