@Test public void testRetryExhausted() throws Exception { MutateRowsRequest request = createRequest(2); RetryingMutateRowsOperation underTest = createOperation(request); ListenableFuture<?> future = underTest.getAsyncResult(); MutateRowsRequest retryRequest = createRequest(request.getEntries(1)); send(underTest, OK, DEADLINE_EXCEEDED); checkExecutor(1); Assert.assertEquals(retryRequest, underTest.getRetryRequest()); clock.setTime( clock.millisTime() + RETRY_OPTIONS.getMaxElapsedBackoffMillis() + 1, TimeUnit.MILLISECONDS); send(underTest, DEADLINE_EXCEEDED); checkExecutor(1); Assert.assertEquals(retryRequest, underTest.getRetryRequest()); checkResponse(future, createResponse(OK, DEADLINE_EXCEEDED)); }
@Override protected MutateRowsRequest getRetryRequest() { return requestManager.getRetryRequest(); }
RetryingMutateRowsOperation extends AbstractRetryingOperation<
        MutateRowsRequest, MutateRowsResponse, List<MutateRowsResponse>> { @Override protected MutateRowsRequest getRetryRequest() { return requestManager.getRetryRequest(); } }
RetryingMutateRowsOperation extends AbstractRetryingOperation<
        MutateRowsRequest, MutateRowsResponse, List<MutateRowsResponse>> { @Override protected MutateRowsRequest getRetryRequest() { return requestManager.getRetryRequest(); } RetryingMutateRowsOperation(
      RetryOptions retryOptions,
      MutateRowsRequest originalRequest,
      BigtableAsyncRpc<MutateRowsRequest, MutateRowsResponse> retryableRpc,
      CallOptions callOptions,
      ScheduledExecutorService retryExecutorService,
      Metadata originalMetadata,
      ApiClock clock); }
RetryingMutateRowsOperation extends AbstractRetryingOperation<
        MutateRowsRequest, MutateRowsResponse, List<MutateRowsResponse>> { @Override protected MutateRowsRequest getRetryRequest() { return requestManager.getRetryRequest(); } RetryingMutateRowsOperation(
      RetryOptions retryOptions,
      MutateRowsRequest originalRequest,
      BigtableAsyncRpc<MutateRowsRequest, MutateRowsResponse> retryableRpc,
      CallOptions callOptions,
      ScheduledExecutorService retryExecutorService,
      Metadata originalMetadata,
      ApiClock clock); @Override void onMessage(MutateRowsResponse message); }
RetryingMutateRowsOperation extends AbstractRetryingOperation<
        MutateRowsRequest, MutateRowsResponse, List<MutateRowsResponse>> { @Override protected MutateRowsRequest getRetryRequest() { return requestManager.getRetryRequest(); } RetryingMutateRowsOperation(
      RetryOptions retryOptions,
      MutateRowsRequest originalRequest,
      BigtableAsyncRpc<MutateRowsRequest, MutateRowsResponse> retryableRpc,
      CallOptions callOptions,
      ScheduledExecutorService retryExecutorService,
      Metadata originalMetadata,
      ApiClock clock); @Override void onMessage(MutateRowsResponse message);  }