Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java19
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)

Back to the top