On 07/08/2013 17:14, Daniel Mikusa wrote:
> I have a questions regarding the Non Blocking API introduced in Tomcat 8.
> 
> I'm looking at the TestNonBlockingAPI test as an example, specifically the 
> NBReadServlet class.
> 
> @WebServlet(asyncSupported = true)
> public class NBReadServlet extends TesterServlet {
>     private static final long serialVersionUID = 1L;
>     public volatile TestReadListener listener;
>     @Override
>     protected void service(HttpServletRequest req, HttpServletResponse resp) 
> throws ServletException, IOException {
>         // step 1 - start async
>         AsyncContext actx = req.startAsync();
>         actx.setTimeout(Long.MAX_VALUE);
>         actx.addListener(new AsyncListener() {
>             // removed for brevity 
>         });
>         // step 2 - notify on read
>         ServletInputStream in = req.getInputStream();
>         listener = new TestReadListener(actx);
>         in.setReadListener(listener);
> 
>         listener.onDataAvailable();
>     }
> }
> 
> My question is why does the test call "listener.onDataAvailable()" at the end?
> 
> In regards to the "onDataAvailable()" method, Section 3.7 of the spec says…
> 
> "The onDataAvailable method is invoked on the ReadListener when data is 
> available to read from the incoming request stream. The container will invoke 
> the method the first time when data is available to read. The container will 
> subsequently invoke the onDataAvailable method if and only if isReady method 
> on ServletInputStream, described below, returns false."
> 
> ...which leads me to believe that the container should be calling 
> onDataAvailable and not the servlet.
> 
> As a side note, my test works if I call "onDataAvailable()" from my test 
> servlet.  Otherwise it fails and times out.

I think you may have a bug there. Please could you create a Bugzilla
entry for it.

Cheers,

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to