While debuggin and issue I noticed the following behaviour in the AMQQueueBrowser class.
1) When we create a queue browser we do a subscribe immediately
followed by a cancel. (And then we subscribe again when we enumerate).
The rationale for doing so it to verify the selector is valid. This is
very confusing for customers who look at the log and it is not appropriate IMHO.
Currently we use client side selectors, so it is easy validate this. The
above step is completely unnecessary.
If we are to use server side selectors the right way to do is
a)Send a subscribe with the selector
b)Give message credits only when you call the enumerate method.