https://issues.apache.org/bugzilla/show_bug.cgi?id=55331
Bug ID: 55331
Summary: Dispatch after async timeout fails
Product: Tomcat 7
Version: 7.0.42
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Catalina
Assignee: [email protected]
Reporter: [email protected]
With Tomcat 7.0.42 and the NIO connector, calling AsyncContext.dispatch() from
an onTimeout() handler fails with this error message:
jul 31, 2013 1:40:30 PM
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler process
SEVERE: Error reading request, ignored
java.lang.IllegalStateException: Calling [asyncPostProcess()] is not valid for
a request with Async state [STARTED]
at
org.apache.coyote.AsyncStateMachine.asyncPostProcess(AsyncStateMachine.java:204)
at
org.apache.coyote.AbstractProcessor.asyncPostProcess(AbstractProcessor.java:116)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:593)
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1690)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Test code:
public class AsyncServlet extends HttpServlet {
protected void doGet(final HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
if (request.isAsyncStarted()) {
response.getWriter().write("asyncResult=" +
request.getAttribute("asyncResult"));
}
else {
final AsyncContext asyncContext = request.startAsync(request, response);
asyncContext.addListener(new AsyncListener() {
public void onTimeout(AsyncEvent event) throws IOException {
request.setAttribute("asyncResult", "timeout\n");
asyncContext.dispatch();
}
public void onStartAsync(AsyncEvent event) throws IOException {}
public void onError(AsyncEvent event) throws IOException {}
public void onComplete(AsyncEvent event) throws IOException {}
});
asyncContext.setTimeout(5000L);
}
}
}
This seems somewhat similar to the (ancient) report #50308.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]