Well, i've got no problem with the initial "hack" i sent to you by
mail, except the timeout can only happen once...
I'll look this evening the difference, there might be something.

2012/11/15 Sergey Beryozkin <[email protected]>:
> Hi
>
> On 14/11/12 22:33, Gege wrote:
>>
>> I checked out the trunk and compiled (didn't think it would be so
>> long, i even got oom with tests (should adjust Xmx i guess)
>> 2.7.1-SNAPSHOT
>>
>> I tried a simple timeout on jonas 5.3M6 (tomcat 7.0.22) with following
>> code :
>>
>>      @GET
>>      @Path("/timeout/{timeout}")
>>      @Produces("text/plain")
>>      public void timeout(@PathParam("timeout") String timeoutStr,
>> @Suspended AsyncResponse ar) {
>>          long timeout = Long.parseLong(timeoutStr);
>>          System.out.println("timeout - enter with timeout=" + timeoutStr +
>> "s");
>>          ar.setTimeoutHandler(new TimeoutHandlerImpl("Timeouted after "
>> + timeout + " seconds"));
>>          ar.setTimeout(timeout, TimeUnit.SECONDS);
>>      }
>>
>>      private class TimeoutHandlerImpl implements TimeoutHandler {
>>          private String _message;
>>
>>          public TimeoutHandlerImpl(String message) {
>>              _message = message;
>>          }
>>
>>          public void handleTimeout(AsyncResponse ar) {
>>              System.out.println("handleTimeout - enter");
>>              ar.resume(_message);
>>          }
>>      }
>>
>> And got the following exception :
>> 2012-11-14 23:11:42,242 : CoyoteAdapter.asyncDispatch : null
>> java.lang.IllegalStateException: Calling [asyncTimeout()] is not valid
>> for a request with Async state [DISPATCHING]
>> at
>> org.apache.coyote.AsyncStateMachine.asyncTimeout(AsyncStateMachine.java:240)
>> at
>> org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:820)
>> at org.apache.coyote.Request.action(Request.java:346)
>> at
>> org.apache.catalina.core.AsyncContextImpl.timeout(AsyncContextImpl.java:110)
>> at
>> org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:292)
>> at
>> org.apache.coyote.http11.AbstractHttp11Processor.asyncDispatch(AbstractHttp11Processor.java:1515)
>> at
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:563)
>> at
>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
>> at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
>> at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
>> at java.lang.Thread.run(Thread.java:679)
>>
>> I didn't have time to inspect things because it's late ... so I just
>> dump the code and the exception, sorry.
>
>
> I can confirm that I've reproduced with the latest Tomcat 7.0.32.
> I can see users reporting the same issue on Google against Tomcat,
> apparently it has been fixed but I suspect it has not been, given that I've
> no problems with Jetty Servlet3 implementation...
>
> Cheers, Sergey
>

Reply via email to