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]

Reply via email to