org.apache.hc.client5.http.impl.sync

## Class RetryExec

- java.lang.Object
- - org.apache.hc.client5.http.impl.sync.RetryExec

All Implemented Interfaces:
  ClientExecChain

    @Immutable
    public class RetryExec
    extends Object
    implements ClientExecChain

Request executor in the request execution chain that is responsible for making a decision whether a request failed due to an I/O error should be re-executed.

Further responsibilities such as communication with the opposite endpoint is delegated to the next executor in the request execution chain.

Since:
  4.3

### Constructor Summary

Constructors
Constructor and Description
`RetryExec(ClientExecChain requestExecutor, HttpRequestRetryHandler retryHandler)`

### Method Summary

Methods
`CloseableHttpResponse` `execute(HttpRoute route, HttpRequestWrapper request, HttpClientContext context, HttpExecutionAware execAware)` Executes th request either by transmitting it to the target server or by passing it onto the next executor in the request execution chain.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### RetryExec

    public RetryExec(ClientExecChain requestExecutor,
             HttpRequestRetryHandler retryHandler)

### Method Detail

#### execute

    public CloseableHttpResponse execute(HttpRoute route,
                                HttpRequestWrapper request,
                                HttpClientContext context,
                                HttpExecutionAware execAware)
                                  throws IOException,
                                         org.apache.hc.core5.http.HttpException

Description copied from interface: `ClientExecChain`
Executes th request either by transmitting it to the target server or by passing it onto the next executor in the request execution chain.

Specified by:
  `execute` in interface `ClientExecChain`
Parameters:
  `route` - connection route.
  `request` - current request.
  `context` - current HTTP context.
  `execAware` - receiver of notifications of blocking I/O operations.
Returns:
  HTTP response either received from the opposite endpoint or generated locally.
Throws:
  `IOException` - in case of a I/O error. (this type of exceptions are potentially recoverable).
  `org.apache.hc.core5.http.HttpException` - in case of an HTTP protocol error (usually this type of exceptions are non-recoverable).