I am experiencing some odd behavior when attempting to receive a message from a Queue when an expired message exists on that Queue. After a call to QueueReceiver.receive(), (with debug enabled) the SpyMessageConsumer logs the following message:
'I dropped a message (timeout)'
The call to receive() never returns and the thread that called receive() is blocked even if another message arrives on the Queue. After running numerous tests it appears that if one or more expired messages are present on a given JMS Queue, the SpyMessageConsumer does not proceed. Has anyone else experienced similar behavior.
The same thing happened to me. When the queue contains an expired message nothing more gets received. I have to delete the files from db\jbossmq to make any receive work again on that queue. Isn't there any correction for this?