>> Hi Chris, >> Servlet 3.1 spec defines that ServletInputStream can be used to read as >> non-blocking way as long as there is data ready locally by calling isReady >> method and check the ready condition before calling read, and read should >> throw IllegalStateException if called by caller when data is not ready > > The above only applies if the servlet is in async mode. Is it?
correct, when it’s running as async mode Andrew > On Sep 21, 2021, at 11:17 PM, Mark Thomas <ma...@apache.org> wrote: > > On 21/09/2021 23:01, Javateck wrote: >> Hi Chris, >> Servlet 3.1 spec defines that ServletInputStream can be used to read as >> non-blocking way as long as there is data ready locally by calling isReady >> method and check the ready condition before calling read, and read should >> throw IllegalStateException if called by caller when data is not ready > > The above only applies if the servlet is in async mode. Is it? > > Mark > > >> Agree that InputStream read api is blocking by nature, but if the data is >> already there in local buffer, then it’s not, it’s just exposing as >> ServletInputStream >> https://javaee.github.io/servlet-spec/downloads/servlet-3.1/Final/servlet-3_1-final.pdf >> >> <https://javaee.github.io/servlet-spec/downloads/servlet-3.1/Final/servlet-3_1-final.pdf> >> >> <https://javaee.github.io/servlet-spec/downloads/servlet-3.1/Final/servlet-3_1-final.pdf >> >> <https://javaee.github.io/servlet-spec/downloads/servlet-3.1/Final/servlet-3_1-final.pdf>> >>> On Sep 21, 2021, at 2:26 PM, Christopher Schultz >>> <ch...@christopherschultz.net <mailto:ch...@christopherschultz.net>> wrote: >>> >>> Andrew, >>> >>> On 9/21/21 13:54, Javateck wrote: >>>> Hi, >>>> With NIO connector with Servlet 3.1 support, I’m registering with a >>>> ReadListener, while it got the first read signal from tomcat container (I >>>> tried 9.0.19 and 9.0.53), the read call is blocked after isReady returns >>>> true >>>> if (ServletInputStream.isReady()) { >>>> ServletInputStream.read(buffer); // this becomes blocking >>>> } >>>> I tried with jetty, it’s working fine >>>> When I did the test, I was holding the sending packet from client side >>>> Not sure whether anyone has tried this >>> >>> InputStream is always blocking. >>> >>> Are you trying to use async? That's not the way to use async... >>> >>> -chris >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >>> For additional commands, e-mail: users-h...@tomcat.apache.org >>> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > <mailto:users-unsubscr...@tomcat.apache.org> > For additional commands, e-mail: users-h...@tomcat.apache.org > <mailto:users-h...@tomcat.apache.org>