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