On Wed, Jul 13, 2016 at 12:46 PM, Rémy Maucherat <r...@apache.org> wrote:
> 2016-07-13 14:00 GMT+02:00 Violeta Georgieva <miles...@gmail.com>: > > > Hi, > > > > I think the following part of the specification is important: > > > > " > > 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(). > > " > > > > So isAsyncStarted returns true when in the error page and the error page > > should call AsyncContext.complete. > > > > What do you think? > > > > It makes more sense to me than changing the behavior at this point. I > will > probably veto any attempt to change again the behavior until it is proven > beyond any doubt that it is wrong. > No need to yield veto power. I'm only asking questions :) It sounds like the change is not intentional but it's unlikely to go back either. For what it's worth in Jetty a call to startAsync from an ERROR dispatch does work and keeps the request going. That said I don't know if that's intentional or not. At any rate thanks for your comments.