diff --git a/zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java b/zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java index a6f07a5451..33067c99ab 100644 --- a/zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java +++ b/zuul-core/src/main/java/com/netflix/zuul/filters/endpoint/ProxyEndpoint.java @@ -738,8 +738,8 @@ protected boolean isRetryable(final ErrorType err) { if ((err == OutboundErrorType.RESET_CONNECTION) || (err == OutboundErrorType.CONNECT_ERROR) || (err == OutboundErrorType.READ_TIMEOUT - && IDEMPOTENT_HTTP_METHODS.contains( - zuulRequest.getMethod().toUpperCase()))) { + && IDEMPOTENT_HTTP_METHODS.contains( + zuulRequest.getMethod().toUpperCase()))) { return isRequestReplayable(); } return false; @@ -908,7 +908,7 @@ protected void handleOriginNonSuccessResponse(final HttpResponse originResponse, boolean retryable5xxResponse = isRetryable5xxResponse(zuulRequest, originResponse); if (retryable5xxResponse) { - origin.adjustRetryPolicyIfNeeded(zuulRequest); + origin.adjustRetryPolicyIfNeeded(zuulRequest, originResponse); } if (retryable5xxResponse && isBelowRetryLimit()) { diff --git a/zuul-core/src/main/java/com/netflix/zuul/origins/NettyOrigin.java b/zuul-core/src/main/java/com/netflix/zuul/origins/NettyOrigin.java index f3ec67dfe6..c8b77bc2e3 100644 --- a/zuul-core/src/main/java/com/netflix/zuul/origins/NettyOrigin.java +++ b/zuul-core/src/main/java/com/netflix/zuul/origins/NettyOrigin.java @@ -26,7 +26,10 @@ import com.netflix.zuul.niws.RequestAttempt; import com.netflix.zuul.passport.CurrentPassport; import io.netty.channel.EventLoop; +import io.netty.handler.codec.http.HttpResponse; import io.netty.util.concurrent.Promise; + +import javax.annotation.Nullable; import java.net.InetAddress; import java.util.concurrent.atomic.AtomicReference; @@ -77,4 +80,8 @@ RequestAttempt newRequestAttempt( IClientConfig getClientConfig(); Registry getSpectatorRegistry(); + + default void adjustRetryPolicyIfNeeded(HttpRequestMessage zuulRequest, @Nullable HttpResponse response) { + adjustRetryPolicyIfNeeded(zuulRequest); + } }