-
Bug
-
Resolution: Done
-
Major
-
8.2.0.Final
-
None
-
-
Compatibility/Configuration
Consider this code:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) { final AsyncContext asyncContext = req.startAsync(); asyncContext.addListener(new AsyncListener() { @Override public void onComplete(AsyncEvent event) throws IOException { System.out.println("complete"); } @Override public void onTimeout(AsyncEvent event) throws IOException { System.out.println("timeout"); } @Override public void onError(AsyncEvent event) throws IOException { System.out.println("err"); } @Override public void onStartAsync(AsyncEvent event) throws IOException { System.out.println("start"); } }); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(2000); asyncContext.dispatch("/path2"); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); }
When used in Wildfly 8.2.0.final complete will never be printed since onComplete() is not called by Wildfly when asyncContext.dispatch() is used even after path2 has finished executing.
On all other versions of wildfly, and other app servers like tomcat and jetty, complete will be printed.