diff --git a/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java b/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java index 507f7d390..294135d39 100644 --- a/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java +++ b/httpclient/src/main/java/org/apache/http/impl/client/HttpClientBuilder.java @@ -1148,6 +1148,13 @@ public class HttpClientBuilder { routePlannerCopy = new DefaultRoutePlanner(schemePortResolverCopy); } } + + // Optionally, add service unavailable retry executor + final ServiceUnavailableRetryStrategy serviceUnavailStrategyCopy = this.serviceUnavailStrategy; + if (serviceUnavailStrategyCopy != null) { + execChain = new ServiceUnavailableRetryExec(execChain, serviceUnavailStrategyCopy); + } + // Add redirect executor, if not disabled if (!redirectHandlingDisabled) { RedirectStrategy redirectStrategyCopy = this.redirectStrategy; @@ -1157,11 +1164,6 @@ public class HttpClientBuilder { execChain = new RedirectExec(execChain, routePlannerCopy, redirectStrategyCopy); } - // Optionally, add service unavailable retry executor - final ServiceUnavailableRetryStrategy serviceUnavailStrategyCopy = this.serviceUnavailStrategy; - if (serviceUnavailStrategyCopy != null) { - execChain = new ServiceUnavailableRetryExec(execChain, serviceUnavailStrategyCopy); - } // Optionally, add connection back-off executor if (this.backoffManager != null && this.connectionBackoffStrategy != null) { execChain = new BackoffStrategyExec(execChain, this.connectionBackoffStrategy, this.backoffManager);