Pito Salas wrote:
commons.collections.buffer.BlockingBuffer throws  BufferUnderflowException

Why does that make sense? I would think that a BlockingBuffer cannot underflow on a get().

So, an InterruptedException is turned into a BufferUnderflowException.

Usually InterruptedException is just re-thrown. I don't understand how to interpret the conversion to a BufferUnderflowException, and whether I can / should safely ignore it.

Buffer.get() can throw the underflow exception, as documented:
 @throws BufferUnderflowException if the buffer is empty

For BlockingBuffer, you would not normally expect to receive the underflow exception as the class waits for more data. However, if it receives an interrupted exception while waiting we must handle it. We could:
a) silently ignore it (bad)
b) log it (but collections doesn't use logging)
c) throw it

We chose (c), and as InterruptedException is not runtime, it is wrapped in a BufferUnderflowException.

You ask if you will receive it. Well, you will if you get a InterruptedException during the wait. I can't really be more precise than that.

Stephen

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to