On 09/04/2008, Rafael Schloming <[EMAIL PROTECTED]> wrote:
> The test mentioned in the subject seems to test for behavior that is not JMS
> compliant. Specifically it consumes from a queue with two messages, receives
> one message, closes the consumer, consumes from the same queue again and
> expects both messages to be there. Essentially it is testing that closing
> the consumer will push the messages back onto the queue. This seems to
> directly contradict the semantics described here:
>
>  http://java.sun.com/products/jms/faq.html#msg_ack_close
>
>  I'd like to change this behavior since one of the modifications I've had to
> make for 0-10 support is to move certain per/message state that is currently
> held by the consumer objects into the session so that we wouldn't, e.g.
> forget to acknowledge messages from consumers that are closed. The natural
> consequence of this change is that the state of outstanding messages is
> unaffected by consumers closing, which does seem consistent with the
> intended JMS semantics, but is unfortunately causing this test to fail.
>
>  I'd like to modify the test to not expect the message to be redelivered
> after the first consumer is closed. Please let me know if you differ with my
> interpretation of the intended JMS semantics or object to this change for
> any other reason.

I think the test may have once been poor I believe that it has been
updated to now be correct but the descriptions and comments left
incorrectly. The test description should be something like:

Sends two messages. Receives one message on a transacted session but
does not commit. It then closes the consumer. A new consumer is
created that should only receive one message and that message cannot
be message 1.

The test is checking that any pre-fetched messages are flushed back to
the broker on close.

I don't see where the test is currently expecting a redelivered
message the comment say:
 // if this is message 1 then it should be marked as redelivered
but the test now fails if it is message 1.

Perhaps I'm missing something but I believe that the test as it is on
M2.1 is correct.

-- 
Martin Ritchie

Reply via email to