Description of problem: When converting from 1.0 to 0-10, the reply to node is checked to figure out how to treat the name (whether it is a queue or an exchange). If the node refers to neither a known queue nor exchange then the resulting reply-to will be empty. This is correct so far, but there is a suffix ';{node:{type:queue}' added to the empty string (if the node does not exist) which finally results in reply-to field set to ";{node:{type:queue}", which is probably not intended. Version-Release number of selected component (if applicable): qpid-cpp-*-0.22-35 How reproducible: 100% Steps to Reproduce: 1. spout --reply-to "non-existing-node" --connection-options "{protocol:amqp1.0}" "queue;{create:always}" 2. drain queue 3. the reply-to field lists ';{node:{type:queue}}' Actual results: the reply-to field lists ';{node:{type:queue}}' Expected results: the reply-to field lists '' Additional info: # /usr/share/examples/messaging/spout --reply-to "non-existing-node" "queue;{create:always}" --connection-options "{protocol:amqp1.0}" # ./qc2_drain queue --log-msg-dict {'redelivered': False, 'reply-to': ';{node:{type:queue}}', 'subject': None, 'content_type': None, 'id': None, 'user_id': 'guest', 'correlation_id': None, 'priority': None, 'durable': False, 'ttl': 0, 'properties': {'spout-id': 'a58bb494-f1d8-448a-a8de-90a18eb0235c:0'}, 'content': None}
This is a client side issue. The client sets the type of the address to be 'queue' when it sees the empty string as the exchange (i.e. the default exchange in 0-10 terms). If you test the reply to, then it returns false (e.g. if ( msg.getReplyTo()) std::cout << msg.getReplyTo; #won't print anything in this case), but the type can also be left unset, which is nicer.
Fixed upstream: https://svn.apache.org/r1588004
Tested with qpid-cpp-0.30-4: --reply-to "non-existing-node" "queue;{create:always}" --connection-options "{protocol:amqp1.0}" ./qc2_drain queue --log-msgs dict {'redelivered': False, 'reply_to': None, 'subject': None, 'content_type': None, 'id': None, 'user_id': None, 'correlation_id': None, 'priority': 0, 'durable': False, 'ttl': 0.000000e+00, 'size': None, 'properties': {'spout-id': '37badeb6-a82a-4b5e-86b1-369b40a88131:0'}, 'content': None}
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/RHEA-2015-0805.html