diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultHttpRequestRetryStrategy.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultHttpRequestRetryStrategy.java
index 2f8695af7..b1be581ca 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultHttpRequestRetryStrategy.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/DefaultHttpRequestRetryStrategy.java
@@ -30,6 +30,7 @@ package org.apache.hc.client5.http.impl;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.net.ConnectException;
+import java.net.NoRouteToHostException;
import java.net.UnknownHostException;
import java.util.Arrays;
import java.util.Collection;
@@ -106,6 +107,7 @@ public class DefaultHttpRequestRetryStrategy implements HttpRequestRetryStrategy
*
UnknownHostException
* ConnectException
* ConnectionClosedException
+ * NoRouteToHostException
* SSLException
*
*
@@ -129,6 +131,7 @@ public class DefaultHttpRequestRetryStrategy implements HttpRequestRetryStrategy
UnknownHostException.class,
ConnectException.class,
ConnectionClosedException.class,
+ NoRouteToHostException.class,
SSLException.class),
Arrays.asList(
HttpStatus.SC_TOO_MANY_REQUESTS,
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/TestDefaultHttpRequestRetryStrategy.java b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/TestDefaultHttpRequestRetryStrategy.java
index 0411326e4..fc8c575dd 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/TestDefaultHttpRequestRetryStrategy.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/TestDefaultHttpRequestRetryStrategy.java
@@ -28,6 +28,7 @@ package org.apache.hc.client5.http.impl;
import java.io.IOException;
import java.net.ConnectException;
+import java.net.NoRouteToHostException;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.Date;
@@ -126,6 +127,13 @@ public class TestDefaultHttpRequestRetryStrategy {
Assert.assertFalse(retryStrategy.retryRequest(request, new ConnectionClosedException(), 1, null));
}
+ @Test
+ public void noRetryForNoRouteToHostException() {
+ final HttpGet request = new HttpGet("/");
+
+ Assert.assertFalse(retryStrategy.retryRequest(request, new NoRouteToHostException(), 1, null));
+ }
+
@Test
public void noRetryOnSSLFailure() throws Exception {
final HttpGet request = new HttpGet("/");