Class RetryExec

  • All Implemented Interfaces:
    ClientExecChain

    @Contract(threading=IMMUTABLE_CONDITIONAL)
    public class RetryExec
    extends java.lang.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
    • Method Detail

      • execute

        public CloseableHttpResponse execute​(HttpRoute route,
                                             HttpRequestWrapper request,
                                             HttpClientContext context,
                                             HttpExecutionAware execAware)
                                      throws java.io.IOException,
                                             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:
        java.io.IOException - in case of a I/O error. (this type of exceptions are potentially recoverable).
        HttpException - in case of an HTTP protocol error (usually this type of exceptions are non-recoverable).