Hi, 2016-05-17 13:46 GMT+03:00 Romain Manni-Bucau <rmannibu...@gmail.com>: > > the real issue is adding a listener there trigger onStartAsync()*ONLY* (no > onCompleted(), onTimeout(), onError() etc... cause > org.apache.catalina.core.AsyncContextImpl#setStarted does listeners.clear(); > ) >
That's behaviour is by spec: "public void addListener(AsyncListener) - Registers the given listener for notifications of onTimeout, onError, onComplete or onStartAsync. The first three are associated with the most recent asynchronous cycle started by calling one of the ServletRequest.startAsync methods. The onStartAsync is associated to a new asynchronous cycle via one of the ServletRequest.startAsync methods." so you can do the following: public void onStartAsync(AsyncEvent event) throws IOException { // Re-add this listener to the new AsyncContext event.getAsyncContext().addListener(this); } Regards, Violeta > > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <http://rmannibucau.wordpress.com> | Github < https://github.com/rmannibucau> | > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber > <http://www.tomitribe.com> | JavaEE Factory > <https://javaeefactory-rmannibucau.rhcloud.com> > > 2016-05-17 12:43 GMT+02:00 Rémy Maucherat <r...@apache.org>: > > > 2016-05-17 12:37 GMT+02:00 Romain Manni-Bucau <rmannibu...@gmail.com>: > > > > > Only found https://bz.apache.org/bugzilla/show_bug.cgi?id=59261 which > > > doesn't mean this code would be invalid > > > > > > Also if you add a listener eagerly you will have the start event and > > loose > > > all "end" (completed, timeout etc...) ones. This doesn't sound very > > > reliable. > > > > > > Can you point me out the related issue please? > > > > > > The bugzilla title says: "Request getAsyncContext should throw > > IllegalStateException if async is not started". So that's what happens now. > > > > Rémy > >