Author: markt Date: Wed Feb 7 19:28:29 2018 New Revision: 1823515 URL: http://svn.apache.org/viewvc?rev=1823515&view=rev Log: Move updating of the wrapper error count to the end of the request processing so errors that occur early in the processing chain can be counted - assuming a wrapper can be mapped after the error.
Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java tomcat/trunk/java/org/apache/catalina/connector/Response.java Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1823515&r1=1823514&r2=1823515&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Wed Feb 7 19:28:29 2018 @@ -287,6 +287,7 @@ public class CoyoteAdapter implements Ad req.getRequestProcessor().setWorkerThreadName(null); // Recycle the wrapper request and response if (!success || !request.isAsync()) { + updateWrapperErrorCount(request, response); request.recycle(); response.recycle(); } @@ -407,6 +408,7 @@ public class CoyoteAdapter implements Ad // Recycle the wrapper request and response if (!async) { + updateWrapperErrorCount(request, response); request.recycle(); response.recycle(); } @@ -414,6 +416,16 @@ public class CoyoteAdapter implements Ad } + private void updateWrapperErrorCount(Request request, Response response) { + if (response.isError()) { + Wrapper wrapper = request.getWrapper(); + if (wrapper != null) { + wrapper.incrementErrorCount(); + } + } + } + + @Override public boolean prepare(org.apache.coyote.Request req, org.apache.coyote.Response res) throws IOException, ServletException { @@ -470,6 +482,7 @@ public class CoyoteAdapter implements Ad ExceptionUtils.handleThrowable(t); log.warn(sm.getString("coyoteAdapter.accesslogFail"), t); } finally { + updateWrapperErrorCount(request, response); request.recycle(); response.recycle(); } Modified: tomcat/trunk/java/org/apache/catalina/connector/Response.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Response.java?rev=1823515&r1=1823514&r2=1823515&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/connector/Response.java (original) +++ tomcat/trunk/java/org/apache/catalina/connector/Response.java Wed Feb 7 19:28:29 2018 @@ -48,7 +48,6 @@ import javax.servlet.http.HttpServletRes import org.apache.catalina.Context; import org.apache.catalina.Globals; import org.apache.catalina.Session; -import org.apache.catalina.Wrapper; import org.apache.catalina.security.SecurityUtil; import org.apache.catalina.util.SessionConfig; import org.apache.coyote.ActionCode; @@ -405,14 +404,7 @@ public class Response implements HttpSer * @return <code>false</code> if the error flag was already set */ public boolean setError() { - boolean result = getCoyoteResponse().setError(); - if (result) { - Wrapper wrapper = getRequest().getWrapper(); - if (wrapper != null) { - wrapper.incrementErrorCount(); - } - } - return result; + return getCoyoteResponse().setError(); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org