tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [Bug 58751] Strange behaviour after calling sendError when an async request times out
Date Fri, 01 Jan 2016 15:39:58 GMT

Mark Thomas <> changed:

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

--- Comment #2 from Mark Thomas <> ---
The test case is invalid.

Tomcat enforces the requirements set on page 2-18 of Servlet 3.1. To quote the
relevant section:

In the event that an asynchronous operation times out, the container must run
through the following steps:
- Invoke the AsyncListener.onTimeout method on all the AsyncListener instances
registered with the ServletRequest on which the asynchronous operation was
- If none of the listeners called AsyncContext.complete() or any of the
AsyncContext.dispatch methods, perform an error dispatch with a status code
equal to HttpServletResponse.SC_INTERNAL_SERVER_ERROR.
- If no matching error page was found, or the error page did not call
AsyncContext.complete() or any of the AsyncContext.dispatch methods, the
container MUST call AsyncContext.complete().

The provided test case does not call AsyncContext.complete() during onTimeout()
so Tomcat performs the error dispatch required above.

If the expected call to AsyncContext.complete() is added to onTimeout(), the
behaviour the test case expects is observed.

Tomcat might be able to handle this better but given the number of errors that
preceed this, (async timeout, failure to call complete()) I'm not sure it is
worth putting much/any effort into investigating possible improvements.

You are receiving this mail because:
You are the assignee for the bug.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message