Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Wilkins2014-08-20 00:27:27 +0000
committerGreg Wilkins2014-08-20 00:27:27 +0000
commite15a87f4993d44042a7ac8d7264b71486c3419fe (patch)
tree58505a204719912ec1d354f08ade4fa1eb6362ac /jetty-server/src
parent0331992d861cd29165aa6a06018f8871416d480b (diff)
downloadorg.eclipse.jetty.project-e15a87f4993d44042a7ac8d7264b71486c3419fe.tar.gz
org.eclipse.jetty.project-e15a87f4993d44042a7ac8d7264b71486c3419fe.tar.xz
org.eclipse.jetty.project-e15a87f4993d44042a7ac8d7264b71486c3419fe.zip
440255 ensure 500 is logged on thrown Errors
Diffstat (limited to 'jetty-server/src')
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java5
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/handler/RequestLogHandler.java9
2 files changed, 13 insertions, 1 deletions
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
index ba33c2e461..ee99477ef8 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/HttpChannel.java
@@ -361,7 +361,10 @@ public class HttpChannel<T> implements HttpParser.RequestHandler<T>, Runnable, H
else
{
error=true;
- throw e;
+ LOG.warn(String.valueOf(_uri), e);
+ _state.error(e);
+ _request.setHandled(true);
+ handleException(e);
}
}
catch (Exception e)
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/RequestLogHandler.java b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/RequestLogHandler.java
index 706b988bff..f2edf937d2 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/handler/RequestLogHandler.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/handler/RequestLogHandler.java
@@ -66,6 +66,9 @@ public class RequestLogHandler extends HandlerWrapper
@Override
public void onError(AsyncEvent event) throws IOException
{
+ HttpServletResponse response = (HttpServletResponse)event.getAsyncContext().getResponse();
+ if (!response.isCommitted())
+ response.setStatus(500);
}
@@ -91,6 +94,12 @@ public class RequestLogHandler extends HandlerWrapper
{
super.handle(target, baseRequest, request, response);
}
+ catch(Error|IOException|ServletException|RuntimeException e)
+ {
+ if (!response.isCommitted())
+ response.setStatus(500);
+ throw e;
+ }
finally
{
if (_requestLog != null && baseRequest.getDispatcherType().equals(DispatcherType.REQUEST))

Back to the top