+++ This bug was initially created as a clone of Bug #1128653 +++ Description of problem: Calling Session::nextReceiver() with a duration of IMMEDIATE will always return null, even if there are incoming messages waiting. This bug was introduced as part of the fix for bug 958895. Version-Release number of selected component (if applicable): qpid-0.24, mrg 2.3.3, qpid-0.28 How reproducible: Easily Steps to Reproduce: 1. put some messages in a queue 2. have a program that creates a receiver for the queue, sets a non-zero capacity, then loops until nextReceiver(Duration::IMMEDIATE returns a non-null receiver), e.g.: ssn.createReceiver("my-queue").setCapacity(1); Receiver next; while (ssn.nextReceiver(next, Duration::IMMEDIATE)) {} next.get(Duration::IMMEDIATE); Actual results: The while loop never returns, even though there are messages on the queue Expected results: The while loop exits once the broker has sent out (a) message(s) Additional info: It should be pointed out that using nextReceiver() with a Duration::IMMEDIATE value in this way is inefficient and rather odd. A much better solution would be to specify some non-zero timeout. This would avoid the cpu usage of a 'busy wait' while in no way either increasing the actual time until the next receiver is obtained or the maximum theoretical time. Using nextReceiver() with a non-zero timeout also avoids this bug.
Fixed upstream: https://svn.apache.org/r1617256
The commit above fixes one regression but introduces another. Need https://svn.apache.org/r1617924 also from upstream.
Tested on RHEL6 RHEL5 i686 x86_64, with following packages: qpid-cpp-client-0.18-32 qpid-cpp-client-devel-0.18-32 qpid-cpp-client-devel-docs-0.18-32 qpid-cpp-client-ssl-0.18-32 qpid-cpp-server-0.18-32 qpid-cpp-server-devel-0.18-32 qpid-cpp-server-ssl-0.18-32 qpid-cpp-server-store-0.18-32 qpid-cpp-server-xml-0.18-32 ->VERIFIED
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2014-1682.html