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>
On Sep 21, 2021, at 2:26 PM, Christopher Schultz
<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
For additional commands, e-mail: users-h...@tomcat.apache.org