aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Becker2012-11-28 11:43:53 (EST)
committerThomas Becker2012-11-28 11:43:53 (EST)
commit30091ccd897bbe35ba0a6c6367fc1b39e0e68721 (patch)
treee88d40c2d6c361c8fdee77d10d1d13932687e71b
parent68afcbba6c2a95e3894efda3ea01458b52abae60 (diff)
downloadorg.eclipse.jetty.project-30091ccd897bbe35ba0a6c6367fc1b39e0e68721.zip
org.eclipse.jetty.project-30091ccd897bbe35ba0a6c6367fc1b39e0e68721.tar.gz
org.eclipse.jetty.project-30091ccd897bbe35ba0a6c6367fc1b39e0e68721.tar.bz2
395314 Add missing flush() call after StandardSession.complete() has been called. Some test cleanup.
-rw-r--r--jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java8
-rw-r--r--jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ConcurrentStreamsTest.java28
-rw-r--r--jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ServerHTTPSPDYTest.java94
3 files changed, 57 insertions, 73 deletions
diff --git a/jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java b/jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java
index 7cb049b..a54b1e0 100644
--- a/jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java
+++ b/jetty-spdy/spdy-core/src/main/java/org/eclipse/jetty/spdy/StandardSession.java
@@ -1060,15 +1060,19 @@ public class StandardSession implements ISession, Parser.Listener, Dumpable
execute(new Runnable()
{
@Override
- public void run() { callback.succeeded() ; }
+ public void run()
+ {
+ callback.succeeded();
+ flush();
+ }
});
-
}
@Override
public void call(Callback callback)
{
callback.succeeded();
+ flush();
}
}
diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ConcurrentStreamsTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ConcurrentStreamsTest.java
index c3a5f31..e6f6e63 100644
--- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ConcurrentStreamsTest.java
+++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ConcurrentStreamsTest.java
@@ -48,6 +48,8 @@ public class ConcurrentStreamsTest extends AbstractHTTPSPDYTest
{
final CountDownLatch slowServerLatch = new CountDownLatch(1);
final CountDownLatch fastServerLatch = new CountDownLatch(1);
+ final String fastPath = "/fast";
+ final String slowPath = "/slow";
Session session = startClient(version, startHTTPServer(version, new AbstractHandler()
{
@Override
@@ -59,11 +61,11 @@ public class ConcurrentStreamsTest extends AbstractHTTPSPDYTest
request.setHandled(true);
switch (target)
{
- case "/slow":
+ case slowPath:
Assert.assertTrue(fastServerLatch.await(10, TimeUnit.SECONDS));
slowServerLatch.countDown();
break;
- case "/fast":
+ case fastPath:
fastServerLatch.countDown();
break;
default:
@@ -79,11 +81,7 @@ public class ConcurrentStreamsTest extends AbstractHTTPSPDYTest
}), null);
// Perform slow request. This will wait on server side until the fast request wakes it up
- Fields headers = new Fields();
- headers.put(HTTPSPDYHeader.METHOD.name(version), "GET");
- headers.put(HTTPSPDYHeader.URI.name(version), "/slow");
- headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
- headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ Fields headers = createHeaders(slowPath);
final CountDownLatch slowClientLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
{
@@ -97,11 +95,7 @@ public class ConcurrentStreamsTest extends AbstractHTTPSPDYTest
});
// Perform the fast request. This will wake up the slow request
- headers.clear();
- headers.put(HTTPSPDYHeader.METHOD.name(version), "GET");
- headers.put(HTTPSPDYHeader.URI.name(version), "/fast");
- headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
- headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ headers = createHeaders(fastPath);
final CountDownLatch fastClientLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
{
@@ -119,4 +113,14 @@ public class ConcurrentStreamsTest extends AbstractHTTPSPDYTest
Assert.assertTrue(fastClientLatch.await(5, TimeUnit.SECONDS));
Assert.assertTrue(slowClientLatch.await(5, TimeUnit.SECONDS));
}
+
+ private Fields createHeaders(String path)
+ {
+ Fields headers = new Fields();
+ headers.put(HTTPSPDYHeader.METHOD.name(version), "GET");
+ headers.put(HTTPSPDYHeader.URI.name(version), path);
+ headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
+ headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ return headers;
+ }
}
diff --git a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ServerHTTPSPDYTest.java b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ServerHTTPSPDYTest.java
index 1986338..42c4105 100644
--- a/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ServerHTTPSPDYTest.java
+++ b/jetty-spdy/spdy-http-server/src/test/java/org/eclipse/jetty/spdy/server/http/ServerHTTPSPDYTest.java
@@ -36,6 +36,7 @@ import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.continuation.Continuation;
import org.eclipse.jetty.continuation.ContinuationSupport;
+import org.eclipse.jetty.server.HttpChannel;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
import org.eclipse.jetty.spdy.api.BytesDataInfo;
@@ -47,6 +48,7 @@ import org.eclipse.jetty.spdy.api.StreamFrameListener;
import org.eclipse.jetty.spdy.api.StringDataInfo;
import org.eclipse.jetty.spdy.api.SynInfo;
import org.eclipse.jetty.util.Fields;
+import org.eclipse.jetty.util.log.StdErrLog;
import org.junit.Assert;
import org.junit.Ignore;
import org.junit.Test;
@@ -58,7 +60,6 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
super(version);
}
- @Test
public void testSimpleGET() throws Exception
{
final String path = "/foo";
@@ -78,12 +79,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = new Fields();
- headers.put(HTTPSPDYHeader.METHOD.name(version), "GET");
- headers.put(HTTPSPDYHeader.URI.name(version), path);
- headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
- headers.put(HTTPSPDYHeader.SCHEME.name(version), "http");
- headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ Fields headers = createHeaders("GET", path);
final CountDownLatch replyLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
{
@@ -122,12 +118,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = new Fields();
- headers.put(HTTPSPDYHeader.METHOD.name(version), "GET");
- headers.put(HTTPSPDYHeader.URI.name(version), uri);
- headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
- headers.put(HTTPSPDYHeader.SCHEME.name(version), "http");
- headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ Fields headers = createHeaders("GET", uri);
final CountDownLatch replyLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
{
@@ -163,12 +154,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = new Fields();
- headers.put(HTTPSPDYHeader.METHOD.name(version), "HEAD");
- headers.put(HTTPSPDYHeader.URI.name(version), path);
- headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
- headers.put(HTTPSPDYHeader.SCHEME.name(version), "http");
- headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ Fields headers = createHeaders("HEAD", path);
final CountDownLatch replyLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
{
@@ -213,12 +199,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = new Fields();
- headers.put(HTTPSPDYHeader.METHOD.name(version), "POST");
- headers.put(HTTPSPDYHeader.URI.name(version), path);
- headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
- headers.put(HTTPSPDYHeader.SCHEME.name(version), "http");
- headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ Fields headers = createHeaders("POST", path);
headers.put("content-type", "application/x-www-form-urlencoded");
final CountDownLatch replyLatch = new CountDownLatch(1);
Stream stream = session.syn(new SynInfo(headers, false), new StreamFrameListener.Adapter()
@@ -259,12 +240,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = new Fields();
- headers.put(HTTPSPDYHeader.METHOD.name(version), "POST");
- headers.put(HTTPSPDYHeader.URI.name(version), path);
- headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
- headers.put(HTTPSPDYHeader.SCHEME.name(version), "http");
- headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ Fields headers = createHeaders("POST", path);
headers.put("content-type", "application/x-www-form-urlencoded");
final CountDownLatch replyLatch = new CountDownLatch(1);
Stream stream = session.syn(new SynInfo(headers, false), new StreamFrameListener.Adapter()
@@ -308,12 +284,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = new Fields();
- headers.put(HTTPSPDYHeader.METHOD.name(version), "POST");
- headers.put(HTTPSPDYHeader.URI.name(version), path);
- headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
- headers.put(HTTPSPDYHeader.SCHEME.name(version), "http");
- headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
+ Fields headers = createHeaders("POST", path);
headers.put("content-type", "application/x-www-form-urlencoded");
final CountDownLatch replyLatch = new CountDownLatch(1);
Stream stream = session.syn(new SynInfo(headers, false), new StreamFrameListener.Adapter()
@@ -354,7 +325,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -400,7 +371,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -451,7 +422,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(2);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -506,7 +477,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -559,7 +530,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -612,7 +583,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -670,7 +641,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -723,7 +694,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
{
@@ -760,7 +731,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -792,18 +763,20 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
@Test
public void testGETWithException() throws Exception
{
+ StdErrLog log = StdErrLog.getLogger(HttpChannel.class);
+ log.setHideStacks(true);
+
Session session = startClient(version, startHTTPServer(version, new AbstractHandler()
{
@Override
public void handle(String target, Request request, HttpServletRequest httpRequest, HttpServletResponse httpResponse)
throws IOException, ServletException
{
- // TODO suppress stack from test log
throw new NullPointerException("thrown_explicitly_by_the_test");
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch latch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -830,6 +803,8 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
});
Assert.assertTrue(replyLatch.await(5, TimeUnit.SECONDS));
Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
+
+ log.setHideStacks(false);
}
@Test
@@ -855,7 +830,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(2);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -937,7 +912,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
@@ -993,7 +968,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("GET");
+ Fields headers = createHeaders("GET", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
final CountDownLatch dataLatch = new CountDownLatch(1);
final AtomicInteger contentLength = new AtomicInteger();
@@ -1057,7 +1032,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("POST");
+ Fields headers = createHeaders("POST", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
Stream stream = session.syn(new SynInfo(headers, false), new StreamFrameListener.Adapter()
{
@@ -1100,7 +1075,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("POST");
+ Fields headers = createHeaders("POST", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
session.syn(new SynInfo(headers, true), new StreamFrameListener.Adapter()
{
@@ -1145,7 +1120,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("POST");
+ Fields headers = createHeaders("POST", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
Stream stream = session.syn(new SynInfo(headers, false), new StreamFrameListener.Adapter()
{
@@ -1213,7 +1188,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("POST");
+ Fields headers = createHeaders("POST", "/foo");
final CountDownLatch replyLatch = new CountDownLatch(1);
Stream stream = session.syn(new SynInfo(headers, false), new StreamFrameListener.Adapter()
{
@@ -1281,7 +1256,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("POST");
+ Fields headers = createHeaders("POST", "/foo");
final CountDownLatch responseLatch = new CountDownLatch(2);
Stream stream = session.syn(new SynInfo(headers, false), new StreamFrameListener.Adapter()
{
@@ -1322,7 +1297,7 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
}
}), null);
- Fields headers = createHeaders("POST");
+ Fields headers = createHeaders("POST", "/foo");
final CountDownLatch responseLatch = new CountDownLatch(1);
Stream stream = session.syn(new SynInfo(headers, false), new StreamFrameListener.Adapter()
{
@@ -1341,14 +1316,15 @@ public class ServerHTTPSPDYTest extends AbstractHTTPSPDYTest
Assert.assertTrue(responseLatch.await(5, TimeUnit.SECONDS));
}
- private Fields createHeaders(String httpMethod)
+ private Fields createHeaders(String httpMethod, String path)
{
Fields headers = new Fields();
headers.put(HTTPSPDYHeader.METHOD.name(version), httpMethod);
- headers.put(HTTPSPDYHeader.URI.name(version), "/foo");
+ headers.put(HTTPSPDYHeader.URI.name(version), path);
headers.put(HTTPSPDYHeader.VERSION.name(version), "HTTP/1.1");
headers.put(HTTPSPDYHeader.SCHEME.name(version), "http");
headers.put(HTTPSPDYHeader.HOST.name(version), "localhost:" + connector.getLocalPort());
return headers;
}
+
}