https://bz.apache.org/bugzilla/show_bug.cgi?id=58751

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

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

--- Comment #2 from Mark Thomas <ma...@apache.org> ---
The test case is invalid.

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

<quote>
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
initiated.
- 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().
</quote>

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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to