From: markt Date: Wed, 29 Jun 2011 12:12:48 +0000 (+0000) Subject: Ensure an access log entry is made if an error occurs during asynchronous request... X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=4f6b32cec783a043320f5701cf26f91399bc34c1;p=tomcat7.0 Ensure an access log entry is made if an error occurs during asynchronous request processing and the socket is immediately closed. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1141066 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/coyote/ajp/AbstractAjpProcessor.java b/java/org/apache/coyote/ajp/AbstractAjpProcessor.java index eacfc4d61..0202290c5 100644 --- a/java/org/apache/coyote/ajp/AbstractAjpProcessor.java +++ b/java/org/apache/coyote/ajp/AbstractAjpProcessor.java @@ -465,10 +465,13 @@ public abstract class AbstractAjpProcessor extends AbstractProcessor { } catch (Throwable t) { ExceptionUtils.handleThrowable(t); getLog().error(sm.getString("http11processor.request.process"), t); - // 500 - Internal Server Error - response.setStatus(500); - adapter.log(request, response, 0); error = true; + } finally { + if (error) { + // 500 - Internal Server Error + response.setStatus(500); + adapter.log(request, response, 0); + } } rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); diff --git a/java/org/apache/coyote/http11/Http11AprProcessor.java b/java/org/apache/coyote/http11/Http11AprProcessor.java index 12b155105..0d4cb6b77 100644 --- a/java/org/apache/coyote/http11/Http11AprProcessor.java +++ b/java/org/apache/coyote/http11/Http11AprProcessor.java @@ -355,10 +355,13 @@ public class Http11AprProcessor extends AbstractHttp11Processor { } catch (Throwable t) { ExceptionUtils.handleThrowable(t); log.error(sm.getString("http11processor.request.process"), t); - // 500 - Internal Server Error - response.setStatus(500); - adapter.log(request, response, 0); error = true; + } finally { + if (error) { + // 500 - Internal Server Error + response.setStatus(500); + adapter.log(request, response, 0); + } } rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); diff --git a/java/org/apache/coyote/http11/Http11NioProcessor.java b/java/org/apache/coyote/http11/Http11NioProcessor.java index 07cf61e03..c277eab4e 100644 --- a/java/org/apache/coyote/http11/Http11NioProcessor.java +++ b/java/org/apache/coyote/http11/Http11NioProcessor.java @@ -219,10 +219,13 @@ public class Http11NioProcessor extends AbstractHttp11Processor { } catch (Throwable t) { ExceptionUtils.handleThrowable(t); log.error(sm.getString("http11processor.request.process"), t); - // 500 - Internal Server Error - response.setStatus(500); - adapter.log(request, response, 0); error = true; + } finally { + if (error) { + // 500 - Internal Server Error + response.setStatus(500); + adapter.log(request, response, 0); + } } rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java index 6c80fd07a..852eba4f4 100644 --- a/java/org/apache/coyote/http11/Http11Processor.java +++ b/java/org/apache/coyote/http11/Http11Processor.java @@ -396,10 +396,13 @@ public class Http11Processor extends AbstractHttp11Processor { } catch (Throwable t) { ExceptionUtils.handleThrowable(t); log.error(sm.getString("http11processor.request.process"), t); - // 500 - Internal Server Error - response.setStatus(500); - adapter.log(request, response, 0); error = true; + } finally { + if (error) { + // 500 - Internal Server Error + response.setStatus(500); + adapter.log(request, response, 0); + } } rp.setStage(org.apache.coyote.Constants.STAGE_ENDED); diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml index dcf596b94..9f7a79c1d 100644 --- a/webapps/docs/changelog.xml +++ b/webapps/docs/changelog.xml @@ -162,6 +162,11 @@ ServletRequestListener implementations to read the request body. Based on a patch by Simon Olofsson. (markt) + + Ensure an access log entry is made if an error occurs during + asynchronous request processing and the socket is immediately closed. + (markt) +