Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimone Bordet2015-03-19 23:22:16 +0000
committerSimone Bordet2015-03-19 23:22:16 +0000
commitd47ef4b846849e4faf98cbb47ff36870275a8b2f (patch)
treea982abebf8b82860e3f951324d3ca61f005e5c20 /jetty-io
parent7acbb050600542f073b919a3d12666d56df7ed8e (diff)
downloadorg.eclipse.jetty.project-d47ef4b846849e4faf98cbb47ff36870275a8b2f.tar.gz
org.eclipse.jetty.project-d47ef4b846849e4faf98cbb47ff36870275a8b2f.tar.xz
org.eclipse.jetty.project-d47ef4b846849e4faf98cbb47ff36870275a8b2f.zip
462616 - Race between finishing a connect and timing it out.
Diffstat (limited to 'jetty-io')
-rw-r--r--jetty-io/src/main/java/org/eclipse/jetty/io/SelectorManager.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/SelectorManager.java b/jetty-io/src/main/java/org/eclipse/jetty/io/SelectorManager.java
index a15268d10a..4972ea8188 100644
--- a/jetty-io/src/main/java/org/eclipse/jetty/io/SelectorManager.java
+++ b/jetty-io/src/main/java/org/eclipse/jetty/io/SelectorManager.java
@@ -671,10 +671,16 @@ public abstract class SelectorManager extends AbstractLifeCycle implements Dumpa
boolean connected = finishConnect(channel);
if (connected)
{
- connect.timeout.cancel();
- key.interestOps(0);
- EndPoint endpoint = createEndPoint(channel, key);
- key.attach(endpoint);
+ if (connect.timeout.cancel())
+ {
+ key.interestOps(0);
+ EndPoint endpoint = createEndPoint(channel, key);
+ key.attach(endpoint);
+ }
+ else
+ {
+ throw new SocketTimeoutException("Concurrent Connect Timeout");
+ }
}
else
{
@@ -952,7 +958,7 @@ public abstract class SelectorManager extends AbstractLifeCycle implements Dumpa
{
if (LOG.isDebugEnabled())
LOG.debug("Channel {} timed out while connecting, closing it", channel);
- connect.failed(new SocketTimeoutException());
+ connect.failed(new SocketTimeoutException("Connect Timeout"));
}
}
}

Back to the top