You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/02/07 19:28:30 UTC
svn commit: r1823515 - in /tomcat/trunk/java/org/apache/catalina/connector:
CoyoteAdapter.java Response.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org