Don't retry a request for NoRouteToHostException

This commit is contained in:
Jaikiran Pai 2021-08-22 19:17:57 +05:30 committed by Oleg Kalnichevski
parent 5164a4e7b4
commit 755b69ea3c
2 changed files with 11 additions and 0 deletions

View File

@ -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
* <li>UnknownHostException</li>
* <li>ConnectException</li>
* <li>ConnectionClosedException</li>
* <li>NoRouteToHostException</li>
* <li>SSLException</li>
* </ul>
*
@ -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,

View File

@ -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("/");