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

Reply via email to