private T retry() throws IOException, ApiException, InterruptedException {
    retryCounter++;
    LOG.info("Retrying request. Retry #{}", retryCounter);
    metrics.startNetwork();
    this.call = client.fetchAsync(request);
    return this.await();
  }
@param request HTTP request to execute.
@param client The client used to execute the request.
@param responseClass Model class to unmarshal JSON body content.
@param fieldNamingPolicy FieldNamingPolicy for unmarshaling JSON.
@param errorTimeOut Number of milliseconds to re-send erroring requests.
@param maxRetries Number of times allowed to re-send erroring requests.
src/main/java/com/google/maps/internal/GaePendingResult.java