diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2016-07-07 13:12:59 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2016-07-07 13:12:59 +0200 |
commit | fac3ac92eef8b0c100e723d507675dc1209354cf (patch) | |
tree | 716d1192423df590f63344ae2553ae7eb0510a92 /jdisc_http_service | |
parent | ee7537c48ba456d557f75566c4b883463c16e996 (diff) |
Add test for closing the connection after N requests.
Diffstat (limited to 'jdisc_http_service')
2 files changed, 18 insertions, 1 deletions
diff --git a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java index 7d6a888e32f..6dd4e30c768 100644 --- a/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java +++ b/jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java @@ -62,7 +62,7 @@ class HttpRequestDispatch { this.servletRequest = servletRequest; if (jDiscContext.serverConfig.maxKeepAliveRequests() > 0) { HttpConnection connection = JDiscHttpServlet.getConnection(servletRequest); - if (connection.getMessagesIn() <= jDiscContext.serverConfig.maxKeepAliveRequests()) { + if (connection.getMessagesIn() >= jDiscContext.serverConfig.maxKeepAliveRequests()) { connection.getGenerator().setPersistent(false); } } diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java index a0c50a1db7a..90dbd650fbf 100644 --- a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java +++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java @@ -440,6 +440,23 @@ public class HttpServerTest { assertThat(driver.close(), is(true)); } + @Test + public void requireThatConnectionIsClosedAfterXRequests() throws Exception { + final int MAX_KEEPALIVE_REQUESTS = 100; + final TestDriver driver = TestDrivers.newConfiguredInstance(new EchoRequestHandler(), + new ServerConfig.Builder().maxKeepAliveRequests(MAX_KEEPALIVE_REQUESTS), + new ConnectorConfig.Builder()); + for (int i = 0; i < MAX_KEEPALIVE_REQUESTS - 1; i++) { + driver.client().get("/status.html") + .expectStatusCode(is(OK)) + .expectNoHeader(CONNECTION); + } + driver.client().get("/status.html") + .expectStatusCode(is(OK)) + .expectHeader(CONNECTION, is(CLOSE)); + assertThat(driver.close(), is(true)); + } + @Test(enabled = false) public void requireThatRequestTrailersAreSupported() throws Exception { final TestDriver driver = TestDrivers.newInstance(new RequestHandlerThatEchoesTrailers()); |