aboutsummaryrefslogtreecommitdiffstats
path: root/jdisc_http_service
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-07-07 13:12:59 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2016-07-07 13:12:59 +0200
commitfac3ac92eef8b0c100e723d507675dc1209354cf (patch)
tree716d1192423df590f63344ae2553ae7eb0510a92 /jdisc_http_service
parentee7537c48ba456d557f75566c4b883463c16e996 (diff)
Add test for closing the connection after N requests.
Diffstat (limited to 'jdisc_http_service')
-rw-r--r--jdisc_http_service/src/main/java/com/yahoo/jdisc/http/server/jetty/HttpRequestDispatch.java2
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java17
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());