From 3e554eaae4eb941c007bfa7d52afec89fcff7c75 Mon Sep 17 00:00:00 2001 From: blavenie <benoit.lavenier@e-is.pro> Date: Tue, 8 Jan 2019 19:00:59 +0100 Subject: [PATCH] [fix] Do not retry http request if HttpHostConnectException --- .../org/duniter/core/client/service/HttpServiceImpl.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/HttpServiceImpl.java b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/HttpServiceImpl.java index 54411ce9..ff2067b4 100644 --- a/duniter4j-core-client/src/main/java/org/duniter/core/client/service/HttpServiceImpl.java +++ b/duniter4j-core-client/src/main/java/org/duniter/core/client/service/HttpServiceImpl.java @@ -41,6 +41,7 @@ import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.client.utils.URIBuilder; import org.apache.http.config.SocketConfig; import org.apache.http.conn.ConnectTimeoutException; +import org.apache.http.conn.HttpHostConnectException; import org.apache.http.entity.ContentType; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; @@ -294,11 +295,17 @@ public class HttpServiceImpl implements HttpService, Closeable, InitializingBean // SSL handshake exception retrying = false; } + else if (exception instanceof HttpHostConnectException) { + // Host connect error + retrying = false; + } + if (retrying && executionCount >= maxRetryCount) { // Do not retry if over max retry count return false; } + HttpClientContext clientContext = HttpClientContext.adapt(context); HttpRequest request = clientContext.getRequest(); if (!retrying) { @@ -331,7 +338,7 @@ public class HttpServiceImpl implements HttpService, Closeable, InitializingBean @SuppressWarnings("unchecked") protected <T> T executeRequest(HttpClient httpClient, HttpUriRequest request, Class<? extends T> resultClass, Class<?> errorClass) { - return executeRequest(httpClient, request, resultClass, errorClass, 5); + return executeRequest(httpClient, request, resultClass, errorClass, 1); } protected <T> T executeRequest(HttpClient httpClient, HttpUriRequest request, Class<? extends T> resultClass, Class<?> errorClass, int retryCount) { -- GitLab