[
https://issues.jboss.org/browse/WFLY-4599?page=com.atlassian.jira.plugin....
]
Prashant Deva updated WFLY-4599:
--------------------------------
Description:
Consider this code:
{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();
}
{code}
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.
was:
Consider this code:
{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
{
asyncContext.dispatch("/path2");
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}).start();
}
{code}
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.
AsyncListener.onComplete() not called if AsyncContext.dispatch() is
called
--------------------------------------------------------------------------
Key: WFLY-4599
URL:
https://issues.jboss.org/browse/WFLY-4599
Project: WildFly
Issue Type: Bug
Components: Web (JBoss Web)
Affects Versions: 8.2.0.Final
Reporter: Prashant Deva
Assignee: Remy Maucherat
Consider this code:
{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();
}
{code}
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.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)