Hello all,
I'm running some tests with slow clients connected to a server that uses the
recent WriteThrottleFilter with a BLOCK policy and I'm having some unexpected
behaviour.
What I want is for the server to block the sending of messages when the write
queue is full, but, I do not want to block indefinitely, I want for the server
to discard the message after a "write timeout".
I thought this was doable using the
WriteFuture.awaitUninterruptibly(long) method.
Here's an example:
long beginWrite = System.currentTimeMillis();
WriteFuture wf = ios.write(response);
wf.awaitUninterruptibly(10);
long endWrite = System.currentTimeMillis();
long duration = endWrite - beginWrite;
if (duration>20)
{
System.out.println("Time for write:" + duration + " ms");
}
I was expecting to never see the message in the console. Not only do I get the
message but also the "duration" can be as much as 10 times larger than the
specified timeout.
Is this a bug or am I misunderstanding the API?
--
/**
* Luis Neves
* @e-mail: [EMAIL PROTECTED]
* @xmpp: [EMAIL PROTECTED]
* @tlm: +351 962 057 656
*/