You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2011/04/07 17:18:34 UTC

DO NOT REPLY [Bug 51038] New: No access logs for Servlet 3.0 async requests

https://issues.apache.org/bugzilla/show_bug.cgi?id=51038

           Summary: No access logs for Servlet 3.0 async requests
           Product: Tomcat 7
           Version: 7.0.11
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
        AssignedTo: dev@tomcat.apache.org
        ReportedBy: chris@blaze.io


Access logs written by org.apache.catalina.valves.AccessLogValve are not being
written for servlet 3.0 async requests.

To reproduce:
- Handle a request asynchronously by marking the servlet with
@WebServlet(asyncSupported=true)
- Send some traffic and notice that nothing is being written to the access
logs.

AccessLogValve.log() is called by org.apache.catalina.Context.logAccess().
>From the source for version 7.0.11, in
org.apache.catalina.connector.CoyoteAdapter.java, line 416:

            AsyncContextImpl asyncConImpl =
(AsyncContextImpl)request.getAsyncContext();
            if (asyncConImpl != null) {
                async = true;
            } else if (!comet) {
                response.finishResponse();
                if (postParseSuccess) {
                    // Log only if processing was invoked.
                    // If postParseRequest() failed, it has already logged it.
                    ((Context) request.getMappingData().context).logAccess(
                            request, response,
                            System.currentTimeMillis() - req.getStartTime(),
                            false);
                }
                req.action(ActionCode.POST_REQUEST , null);
            }

In the async case logAccess() isn't called here. I've searched through the code
and don't see logAccess() being called anywhere else, except in error cases.
So, it looks like the async case is missing a call to logAccess() somewhere.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


DO NOT REPLY [Bug 51038] No access logs for Servlet 3.0 async requests

Posted by bu...@apache.org.
https://issues.apache.org/bugzilla/show_bug.cgi?id=51038

Mark Thomas <ma...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #1 from Mark Thomas <ma...@apache.org> 2011-04-16 17:24:09 EDT ---
This has been fixed in trunk and will be included in 7.0.13 onwards.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org