Throw BufferUnderflowException when read operation reaches the buffer's
limit