Red Hat Bugzilla – Bug 488806
SubscriptionManager::get() closes dispatch queue unexpectedly
Last modified: 2015-11-15 19:06:51 EST
Created attachment 334193 [details]
If SubscriptionManager::get() is invoked with no subscriptions in place, the dispatch queue is closed and a subsequent SubscriptionManager::run() returns without dispatching.
Attached reproducer is a modified versio of the direct examples listener. Use the declare_queues and direct_producer from that example to create the queue and publish some messages. Then run this modified listener.
The expected result is that the first message is pulled of, then the rest are received via the listener. However the initial get() is causing the dispatcher to close the dispatch queue even though dispatching has not yet begun. Therefore only the first message is printed (from the get()) and run returns immediately.
Fixed by r750622.
The issue has been fixed, validated on RHEL 4.7 / 5.2 / 5.3, i386 / x86_64 on packages: qpid*-0.5.752581-1.el5.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.