Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimone Bordet2015-12-21 10:46:40 +0000
committerSimone Bordet2015-12-21 10:47:05 +0000
commit8f4cc73613e5f6953789eb32eb7aba8e26083854 (patch)
tree328f60424be97036a3dea5128b5cdd60447d1ad5 /jetty-http2
parent35c4c240997fb0d6c1f2abf8429b7dd50a4af739 (diff)
downloadorg.eclipse.jetty.project-8f4cc73613e5f6953789eb32eb7aba8e26083854.tar.gz
org.eclipse.jetty.project-8f4cc73613e5f6953789eb32eb7aba8e26083854.tar.xz
org.eclipse.jetty.project-8f4cc73613e5f6953789eb32eb7aba8e26083854.zip
484585 - Avoid sending request using a connection that is idle timing out.
Rewritten handling of idle timeouts in light of issue #484718.
Diffstat (limited to 'jetty-http2')
-rw-r--r--jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Connection.java10
-rw-r--r--jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Session.java13
-rw-r--r--jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpConnectionOverHTTP2.java1
3 files changed, 9 insertions, 15 deletions
diff --git a/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Connection.java b/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Connection.java
index 13629de0b2..e9b7602ac1 100644
--- a/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Connection.java
+++ b/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Connection.java
@@ -113,12 +113,12 @@ public class HTTP2Connection extends AbstractConnection
}
@Override
- protected boolean onReadTimeout()
+ public boolean onIdleExpired()
{
- if (LOG.isDebugEnabled())
- LOG.debug("Idle timeout {}ms expired on {}", getEndPoint().getIdleTimeout(), this);
- if (!session.onIdleTimeout())
- fillInterested();
+ boolean close = session.onIdleTimeout();
+ boolean idle = isFillInterested();
+ if (close && idle)
+ session.close(ErrorCode.NO_ERROR.code, "idle_timeout", Callback.NOOP);
return false;
}
diff --git a/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Session.java b/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Session.java
index 89480da632..b57882e977 100644
--- a/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Session.java
+++ b/jetty-http2/http2-common/src/main/java/org/eclipse/jetty/http2/HTTP2Session.java
@@ -832,7 +832,7 @@ public abstract class HTTP2Session implements ISession, Parser.Listener
* stuck because of TCP congestion), therefore we terminate.
* See {@link #onGoAway(GoAwayFrame)}.
*
- * @return true if the session has been closed, false otherwise
+ * @return true if the session should be closed, false otherwise
* @see #onGoAway(GoAwayFrame)
* @see #close(int, String, Callback)
* @see #onShutdown()
@@ -844,22 +844,17 @@ public abstract class HTTP2Session implements ISession, Parser.Listener
{
case NOT_CLOSED:
{
- if (notifyIdleTimeout(this))
- {
- close(ErrorCode.NO_ERROR.code, "idle_timeout", Callback.NOOP);
- return true;
- }
- return false;
+ return notifyIdleTimeout(this);
}
case LOCALLY_CLOSED:
case REMOTELY_CLOSED:
{
abort(new TimeoutException());
- return true;
+ return false;
}
default:
{
- return true;
+ return false;
}
}
}
diff --git a/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpConnectionOverHTTP2.java b/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpConnectionOverHTTP2.java
index 5c5372f62e..1d3a4c6dbb 100644
--- a/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpConnectionOverHTTP2.java
+++ b/jetty-http2/http2-http-client-transport/src/main/java/org/eclipse/jetty/http2/client/http/HttpConnectionOverHTTP2.java
@@ -76,7 +76,6 @@ public class HttpConnectionOverHTTP2 extends HttpConnection
close(new AsynchronousCloseException());
}
- @Override
protected void close(Throwable failure)
{
// First close then abort, to be sure that the connection cannot be reused

Back to the top