diff options
Diffstat (limited to 'jetty-client/src/main/java/org/eclipse/jetty/client/AbstractHttpClientTransport.java')
-rw-r--r-- | jetty-client/src/main/java/org/eclipse/jetty/client/AbstractHttpClientTransport.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/AbstractHttpClientTransport.java b/jetty-client/src/main/java/org/eclipse/jetty/client/AbstractHttpClientTransport.java index cf7060f3e6..544ab0ace1 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/AbstractHttpClientTransport.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/AbstractHttpClientTransport.java @@ -19,21 +19,27 @@ package org.eclipse.jetty.client; import java.io.IOException; +import java.net.InetSocketAddress; import java.net.SocketAddress; +import java.net.SocketException; import java.nio.channels.SelectionKey; import java.nio.channels.SocketChannel; import java.util.Map; import org.eclipse.jetty.client.api.Connection; import org.eclipse.jetty.io.EndPoint; +import org.eclipse.jetty.io.ManagedSelector; import org.eclipse.jetty.io.SelectChannelEndPoint; import org.eclipse.jetty.io.SelectorManager; import org.eclipse.jetty.io.ssl.SslClientConnectionFactory; import org.eclipse.jetty.util.Promise; +import org.eclipse.jetty.util.annotation.ManagedAttribute; +import org.eclipse.jetty.util.annotation.ManagedObject; import org.eclipse.jetty.util.component.ContainerLifeCycle; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; +@ManagedObject public abstract class AbstractHttpClientTransport extends ContainerLifeCycle implements HttpClientTransport { protected static final Logger LOG = Log.getLogger(HttpClientTransport.class); @@ -58,6 +64,12 @@ public abstract class AbstractHttpClientTransport extends ContainerLifeCycle imp this.client = client; } + @ManagedAttribute(value = "The number of selectors", readonly = true) + public int getSelectors() + { + return selectors; + } + @Override protected void doStart() throws Exception { @@ -75,7 +87,7 @@ public abstract class AbstractHttpClientTransport extends ContainerLifeCycle imp } @Override - public void connect(SocketAddress address, Map<String, Object> context) + public void connect(InetSocketAddress address, Map<String, Object> context) { SocketChannel channel = null; try @@ -110,6 +122,11 @@ public abstract class AbstractHttpClientTransport extends ContainerLifeCycle imp // UnresolvedAddressException are not IOExceptions. catch (Throwable x) { + // If IPv6 is not deployed, a generic SocketException "Network is unreachable" + // exception is being thrown, so we attempt to provide a better error message. + if (x.getClass() == SocketException.class) + x = new SocketException("Could not connect to " + address).initCause(x); + try { if (channel != null) |