Resolution: Not A Problem
Affects Version/s: 3.0.0, master
Fix Version/s: None
When JMSMail queue is empty the deQueue invocation leads to infinite loop.
Now the deQueue uses while(true) and tries to receive message with 10 second time out. When queue is empty the branch containing return statement is never executed.
Please run this test in JMSMailQueueTest:
it's never stops.
Proposed solution to create the EmptyMailQueueException or TimeoutMailQueueException or even more specialized exception to describe the problem.
Also in bundle with new exceptions we could add new method to the MailQueue like this
to give users explicit control over timeout. This new method also gives a kind of symmetry between enQueue and deQueue.
As an alternative I would suggest to simply return null when time is out and no message is available for return.