definitely a bug, I will work on a fix right away.
Filip
Sebastiaan van Erk wrote:
Hi,
I have the following problem with Comet. I have a long request, and I
asynchronously write data to the output stream of the response while
the request is between the BEGIN and END/ERROR events. However, the
writes do NOT occur while IN a READ request, but are triggered by
other events on the server side.
When I send a lot of data, the send buffer fills up, and the channel
needs to be registered with the poller for the OP_WRITE event.
However, this does not happen. In NioBlockingSelector line 69, there
is the following code that is supposed to register the channel for
OP_WRITE:
if ( att.getLatch()==null ||
att.getLatch().getCount()==0) att.startLatch(1);
if ( att.interestOps() == 0)
socket.getPoller().add(socket,SelectionKey.OP_WRITE);
att.getLatch().await(writeTimeout,TimeUnit.MILLISECONDS);
However, since I'm not in a comet READ event, att.interestOps() == 1
(and not 0), therefore the event is never registered. 60 seconds later
I get a SocketTimeoutException.
I figure this is probably a bug, but I thought I'd ask here just to be
sure.
Regards,
Sebastiaan
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]