public final <C extends GenomicsRequest<D>, D> D execute(C request) throws IOException {
    for (Instance instance = createInstance(); true;) {
      try {
        return request.execute();
      } catch (IOException e) {
        if (!instance.shouldRetry(request, e)) {
          throw e;
        }
      }
    }
  }
public final < C extends GenomicsRequest < D > , D > D execute ( C request ) throws IOException { for ( Instance instance = createInstance ( ) ; true ; ) { try { return request . execute ( ) ; } catch ( IOException e ) { if ( ! instance . shouldRetry ( request , e ) ) { throw e ; } } } }
Execute the given {@link GenomicsRequest} and return the response.

This method begins by creating an {@code RetryPolicy.Instance} and then attempts to execute the
request by invoking {@link GenomicsRequest#execute}. If the request fails with an
{@link IOException}, the {@link RetryPolicy.Instance#shouldRetry} method is consulted to
determine if the request should be retried.

@param request The {@code GenomicsRequest} to execute.
@return The response from executing the request.
@throws IOException if executing the request fails and {@code this} RetryPolicy decides not to
retry the request.