diff options
author | Simone Bordet | 2015-12-21 10:46:40 +0000 |
---|---|---|
committer | Simone Bordet | 2015-12-21 10:47:05 +0000 |
commit | 8f4cc73613e5f6953789eb32eb7aba8e26083854 (patch) | |
tree | 328f60424be97036a3dea5128b5cdd60447d1ad5 /jetty-http2 | |
parent | 35c4c240997fb0d6c1f2abf8429b7dd50a4af739 (diff) | |
download | org.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')
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 |