diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/InMemoryDnsResolver.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/InMemoryDnsResolver.java index 3894a6ca7..040f9ca4e 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/InMemoryDnsResolver.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/InMemoryDnsResolver.java @@ -90,7 +90,7 @@ public InetAddress[] resolve(final String host) throws UnknownHostException { LOG.info("Resolving {} to {}", host, Arrays.deepToString(resolvedAddresses)); } if(resolvedAddresses == null){ - throw new UnknownHostException(host + " cannot be resolved"); + throw new UnknownHostException(host); } return resolvedAddresses; } diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java index 5507d4015..bbbf826e1 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java @@ -32,6 +32,7 @@ import java.net.Proxy; import java.net.Socket; import java.net.SocketAddress; +import java.net.UnknownHostException; import java.util.Arrays; import org.apache.hc.client5.http.ConnectExceptionSupport; @@ -143,8 +144,12 @@ public void connect( remoteAddresses = this.dnsResolver.resolve(host.getHostName()); if (LOG.isDebugEnabled()) { - LOG.debug("{} resolved to {}", host.getHostName(), Arrays.asList(remoteAddresses)); + LOG.debug("{} resolved to {}", host.getHostName(), remoteAddresses == null ? "null" : Arrays.asList(remoteAddresses)); } + + if (remoteAddresses == null || remoteAddresses.length == 0) { + throw new UnknownHostException(host.getHostName()); + } } final Timeout soTimeout = socketConfig.getSoTimeout(); diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/MultihomeIOSessionRequester.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/MultihomeIOSessionRequester.java index 8ae8d14fc..ac586428a 100644 --- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/MultihomeIOSessionRequester.java +++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/nio/MultihomeIOSessionRequester.java @@ -111,6 +111,9 @@ public void cancelled() { final InetAddress[] remoteAddresses; try { remoteAddresses = dnsResolver.resolve(remoteEndpoint.getHostName()); + if (remoteAddresses == null || remoteAddresses.length == 0) { + throw new UnknownHostException(remoteEndpoint.getHostName()); + } } catch (final UnknownHostException ex) { future.failed(ex); return future;