Bug 981640

Summary: assert should check the filters actually in use over AMQP 1.0
Product: Red Hat Enterprise MRG Reporter: Gordon Sim <gsim>
Component: qpid-cppAssignee: Gordon Sim <gsim>
Status: CLOSED CURRENTRELEASE QA Contact: Zdenek Kraus <zkraus>
Severity: unspecified Docs Contact:
Priority: medium    
Version: DevelopmentCC: esammons, iboverma, jross, pematous, zkraus
Target Milestone: 3.0   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qpid-qmf-0.22-7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1010399    

Description Gordon Sim 2013-07-05 11:12:48 UTC
Description of problem:

If a filter is specified (see bug 975446) and the exchange type doesn't support it, the client should check this if assert is specified in the address and this should result in an error. This allows an application to take action if a requested filtering is not supported.

Version-Release number of selected component (if applicable):

qpid-cpp-0.22-5.el6, qpid-cpp-0.22-5.el5

How reproducible:

100%

Steps to Reproduce:
1. qpid-receive --connection-options {protocol:amqp1.0} "amq.fanout; {assert: always, link:{filter: {value:\"declare variable $colour external; $colour = 'red'\",name:x,descriptor:\"apache.org:xquery-filter:string\"}}}"

Actual results:

No error will be raised even though there is no filtering in place. Any message sent to amq.fanout will be delivered to the receiver.

Expected results:

Get an exception due to lack of support for the requested filter.
Additional info:

Comment 1 Gordon Sim 2013-07-05 11:14:01 UTC
Fixed upstream by https://svn.apache.org/r1497748

Comment 2 Zdenek Kraus 2014-08-26 15:36:39 UTC
tested on RHEL 6.5 i686 && x86_64 with following packages:

qpid-cpp-debuginfo-0.22-47.el6
qpid-cpp-server-0.22-47.el6
qpid-cpp-server-devel-0.22-47.el6
qpid-cpp-client-0.22-47.el6
qpid-cpp-server-xml-0.22-47.el6
qpid-cpp-client-devel-docs-0.22-47.el6
qpid-cpp-client-devel-0.22-47.el6
qpid-cpp-server-linearstore-0.22-47.el6
qpid-qmf-0.22-38.el6
qpid-qmf-devel-0.22-38.el6


this works as expected. Outstanding issue reported separately: Bug 1133948