Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java')
-rw-r--r--jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java42
1 files changed, 38 insertions, 4 deletions
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java
index 0ecebb68dc..488116df56 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/HttpServerTestBase.java
@@ -246,7 +246,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture
}
@Test
- public void testExceptionThrownInHandler() throws Exception
+ public void testExceptionThrownInHandlerLoop() throws Exception
{
configureServer(new AbstractHandler()
{
@@ -271,7 +271,41 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture
os.flush();
String response = readResponse(client);
- assertThat("response code is 500", response.contains("500"), is(true));
+ assertThat(response,Matchers.containsString(" 500 "));
+ }
+ finally
+ {
+ ((StdErrLog)Log.getLogger(HttpChannel.class)).setHideStacks(false);
+ }
+ }
+
+ @Test
+ public void testExceptionThrownInHandler() throws Exception
+ {
+ configureServer(new AbstractHandler()
+ {
+ @Override
+ public void doHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
+ {
+ throw new QuietServletException("TEST handler exception");
+ }
+ });
+
+ StringBuffer request = new StringBuffer("GET / HTTP/1.0\r\n");
+ request.append("Host: localhost\r\n\r\n");
+
+ Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort());
+ OutputStream os = client.getOutputStream();
+
+ try
+ {
+ ((StdErrLog)Log.getLogger(HttpChannel.class)).setHideStacks(true);
+ Log.getLogger(HttpChannel.class).info("Expecting ServletException: TEST handler exception...");
+ os.write(request.toString().getBytes());
+ os.flush();
+
+ String response = readResponse(client);
+ assertThat(response,Matchers.containsString(" 500 "));
}
finally
{
@@ -287,7 +321,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture
configureServer(new AbstractHandler()
{
@Override
- public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
+ public void doHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
baseRequest.setHandled(true);
int contentLength = request.getContentLength();
@@ -301,7 +335,7 @@ public abstract class HttpServerTestBase extends HttpServerTestFixture
catch (EofException e)
{
earlyEOFException.set(true);
- throw e;
+ throw new QuietServletException(e);
}
if (i == 3)
fourBytesRead.set(true);

Back to the top