From 1ba815497379df97ba6024f6e40169ed7e2611ec Mon Sep 17 00:00:00 2001 From: remm Date: Mon, 2 Apr 2007 16:51:29 +0000 Subject: [PATCH] - If an exception is thrown processing an event which was not an error, the contract says an ERROR event should be called. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@524836 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/connector/CoyoteAdapter.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java index 810b7554b..cb15d7fd3 100644 --- a/java/org/apache/catalina/connector/CoyoteAdapter.java +++ b/java/org/apache/catalina/connector/CoyoteAdapter.java @@ -141,6 +141,14 @@ public class CoyoteAdapter // Calling the container connector.getContainer().getPipeline().getFirst().event(request, response, request.getEvent()); + if (!error && !response.isClosed() && (request.getAttribute(Globals.EXCEPTION_ATTR) != null)) { + // An unexpected exception occurred while processing the event, so + // error should be called + request.getEvent().setEventType(CometEvent.EventType.ERROR); + request.getEvent().setEventSubType(null); + error = true; + connector.getContainer().getPipeline().getFirst().event(request, response, request.getEvent()); + } if (response.isClosed() || !request.isComet()) { res.action(ActionCode.ACTION_COMET_END, null); } -- 2.11.0