Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2011-02-22 22:05:43 +0000
committerGreg Wilkins2011-02-22 22:05:43 +0000
commit8acf49568cd0d19ab20f1fa8f3a7ebd9071bbf55 (patch)
tree2e0c0968918da12fd15884bf767a986d2afc48b7
parentf6349cd762d54217ae4e87cc591e9b4531c39931 (diff)
downloadorg.eclipse.jetty.project-8acf49568cd0d19ab20f1fa8f3a7ebd9071bbf55.tar.gz
org.eclipse.jetty.project-8acf49568cd0d19ab20f1fa8f3a7ebd9071bbf55.tar.xz
org.eclipse.jetty.project-8acf49568cd0d19ab20f1fa8f3a7ebd9071bbf55.zip
337678 use the httpClient timerQ for connect timeouts
git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2819 7e9141cc-0065-0410-87d8-b60c137991c4
-rw-r--r--jetty-client/src/main/java/org/eclipse/jetty/client/HttpClient.java6
-rw-r--r--jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java29
2 files changed, 7 insertions, 28 deletions
diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/HttpClient.java b/jetty-client/src/main/java/org/eclipse/jetty/client/HttpClient.java
index 0fcb5dc36d..688af0e76c 100644
--- a/jetty-client/src/main/java/org/eclipse/jetty/client/HttpClient.java
+++ b/jetty-client/src/main/java/org/eclipse/jetty/client/HttpClient.java
@@ -246,6 +246,7 @@ public class HttpClient extends HttpBuffers implements Attributes
_timeoutQ.schedule(task);
}
+ /* ------------------------------------------------------------ */
public void schedule(Timeout.Task task, long timeout)
{
_timeoutQ.schedule(task, timeout - _timeoutQ.getDuration());
@@ -529,6 +530,7 @@ public class HttpClient extends HttpBuffers implements Attributes
public void startConnection(HttpDestination destination) throws IOException;
}
+ /* ------------------------------------------------------------ */
/**
* if a keystore location has been provided then client will attempt to use it as the keystore,
* otherwise we simply ignore certificates and run with a loose ssl context.
@@ -567,6 +569,7 @@ public class HttpClient extends HttpBuffers implements Attributes
_idleTimeout = ms;
}
+ /* ------------------------------------------------------------ */
/**
* @return the period in ms that an exchange will wait for a response from the server.
* @deprecated use {@link #getTimeout()} instead.
@@ -577,6 +580,7 @@ public class HttpClient extends HttpBuffers implements Attributes
return Long.valueOf(getTimeout()).intValue();
}
+ /* ------------------------------------------------------------ */
/**
* @deprecated use {@link #setTimeout(long)} instead.
* @param timeout the period in ms that an exchange will wait for a response from the server.
@@ -605,6 +609,7 @@ public class HttpClient extends HttpBuffers implements Attributes
_timeout = timeout;
}
+ /* ------------------------------------------------------------ */
/**
* @return the period in ms before timing out an attempt to connect
*/
@@ -613,6 +618,7 @@ public class HttpClient extends HttpBuffers implements Attributes
return _connectTimeout;
}
+ /* ------------------------------------------------------------ */
/**
* @param connectTimeout the period in ms before timing out an attempt to connect
*/
diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java b/jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java
index 9570a4b150..f2c8e10824 100644
--- a/jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java
+++ b/jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java
@@ -44,7 +44,6 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector,
{
private final HttpClient _httpClient;
private final Manager _selectorManager=new Manager();
- private final Timeout _connectTimer = new Timeout();
private final Map<SocketChannel, Timeout.Task> _connectingChannels = new ConcurrentHashMap<SocketChannel, Timeout.Task>();
private SSLContext _sslContext;
private Buffers _sslBuffers;
@@ -62,31 +61,6 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector,
protected void doStart() throws Exception
{
super.doStart();
- _connectTimer.setDuration(_httpClient.getConnectTimeout());
- _connectTimer.setNow();
-
- if (!_httpClient.isConnectBlocking())
- {
- _httpClient._threadPool.dispatch(new Runnable()
- {
- public void run()
- {
- while (isRunning())
- {
- _connectTimer.tick(System.currentTimeMillis());
- try
- {
- Thread.sleep(200);
- }
- catch (InterruptedException x)
- {
- Thread.currentThread().interrupt();
- break;
- }
- }
- }
- });
- }
_selectorManager.start();
@@ -136,7 +110,6 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector,
@Override
protected void doStop() throws Exception
{
- _connectTimer.cancelAll();
_selectorManager.stop();
}
@@ -156,7 +129,7 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector,
channel.connect(address.toSocketAddress());
_selectorManager.register( channel, destination );
ConnectTimeout connectTimeout = new ConnectTimeout(channel, destination);
- _connectTimer.schedule(connectTimeout);
+ _httpClient.schedule(connectTimeout,_httpClient.getConnectTimeout());
_connectingChannels.put(channel, connectTimeout);
}
else

Back to the top