Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1090024

Summary: [Selectors] Java client ignore selectors
Product: Red Hat Enterprise MRG Reporter: Zdenek Kraus <zkraus>
Component: qpid-javaAssignee: Andrew Stitcher <astitcher>
Status: CLOSED WONTFIX QA Contact: Messaging QE <messaging-qe-bugs>
Severity: high Docs Contact:
Priority: medium    
Version: 3.0CC: jross
Target Milestone: ---Keywords: Improvement
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-05-22 14:34:54 UTC 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: 1113461    

Description Zdenek Kraus 2014-04-22 12:08:01 UTC
Description of problem:
When selectors are supplied to java client, it's ignored. Broker doesn't even log the selector behaviour.


Version-Release number of selected component (if applicable):
qpid-java-client-0.22-6.el6

How reproducible:
100%


Steps to Reproduce:
#testing "a IS NULL" selector

# send true positive
1. java  -cp "/usr/share/java/qpid-deps/log4j-slf4j.jar:/usr/share/java/qpid-deps/qpid-deps-0.22.jar:/usr/share/java/log4j.jar:/usr/share/java/qpid-common-0.22.jar:/usr/share/java/qpid-client-0.22.jar:/var/dtests/node_data/clients:/var/dtests/node_data/reproducers" -Dlog4j.configuration=example.log4j org.apache.qpid.example.qc2_spout  --log-msgs dict --broker 192.168.6.3:5672 --connection-options "{  sasl_mechanisms : 'ANONYMOUS', protocol : 'amqp0-10' }" --count 1  "test_is_null;{create:always}

# send true negative
2. java  -cp "/usr/share/java/qpid-deps/log4j-slf4j.jar:/usr/share/java/qpid-deps/qpid-deps-0.22.jar:/usr/share/java/log4j.jar:/usr/share/java/qpid-common-0.22.jar:/usr/share/java/qpid-client-0.22.jar:/var/dtests/node_data/clients:/var/dtests/node_data/reproducers" -Dlog4j.configuration=example.log4j org.apache.qpid.example.qc2_spout  --log-msgs dict --broker 192.168.6.3:5672 --connection-options "{  sasl_mechanisms : 'ANONYMOUS', protocol : 'amqp0-10' }" --count 1 --property "a=1"   "test_is_null;{}"

# read with selector
3. java  -cp "/usr/share/java/qpid-deps/log4j-slf4j.jar:/usr/share/java/qpid-deps/qpid-deps-0.22.jar:/usr/share/java/log4j.jar:/usr/share/java/qpid-common-0.22.jar:/usr/share/java/qpid-client-0.22.jar:/var/dtests/node_data/clients:/var/dtests/node_data/reproducers" -Dlog4j.configuration=example.log4j org.apache.qpid.example.qc2_drain  --log-msgs dict --broker 192.168.6.3:5672 --connection-options "{  sasl_mechanisms : 'ANONYMOUS', protocol : 'amqp0-10' }" --count 0  "test_is_null;{'link': {'selector': \"a IS NULL\"}}"


Actual results:
[1] #all messages are drained
{'redelivered': False, 'reply_to': None, 'subject': None, 'id': None, 'correlation_id': None, 'priority': 4, 'durable': True, 'type': None, 'expiration': 0, 'timestamp': 1398165679979, 'properties': {'spout-id': 'e05798be-0c80-3659-b495-3e8cf3b4366e:0'}, 'content': None}
{'redelivered': False, 'reply_to': None, 'subject': None, 'id': None, 'correlation_id': None, 'priority': 4, 'durable': True, 'type': None, 'expiration': 0, 'timestamp': 1398165693112, 'properties': {'a': '1', 'spout-id': 'f76774cb-d6c3-37bd-a295-72ceefc68abe:0'}, 'content': None}



Expected results:
[1] # only message where a is null should be drained
{'redelivered': False, 'reply_to': None, 'subject': None, 'id': None, 'correlation_id': None, 'priority': 4, 'durable': True, 'type': None, 'expiration': 0, 'timestamp': 1398165679979, 'properties': {'spout-id': 'e05798be-0c80-3659-b495-3e8cf3b4366e:0'}, 'content': None}

Additional info:
# qpid debug log
2014-04-22 13:21:41 [Model] debug Create subscription. queue:test_is_null destination:1 user:anonymous rhost:qpid.192.168.6.3:5672-192.168.6.3:60147 exclusive:F
2014-04-22 13:21:41 [Broker] debug next() called for invalid cursor, index started at 0 (of 2)
2014-04-22 13:21:41 [Broker] debug in next(), cursor set to 1
2014-04-22 13:21:41 [Broker] debug in next(), returning message at 1
2014-04-22 13:21:41 [Broker] debug Subscription 1 on anonymous.5db99ead-d2a1-4df5-b0f7-595bedeeffbc has sufficient  credit for message of 119 bytes: messages: 500 (from window of 500) bytes: unlimited
2014-04-22 13:21:41 [Broker] debug Attempting to acquire message 1 from 'test_is_null' with state 1
2014-04-22 13:21:41 [Broker] debug Message 1 retrieved from 'test_is_null'
2014-04-22 13:21:41 [Broker] debug Credit allocated for 1 on anonymous.5db99ead-d2a1-4df5-b0f7-595bedeeffbc, was messages: 500 (from window of 500) bytes: unlimited now messages: 499 (from window of 500) bytes: unlimited
2014-04-22 13:21:41 [Broker] debug next() called for cursor at 1, index set to 1 (of 2)
2014-04-22 13:21:41 [Broker] debug in next(), cursor set to 2
2014-04-22 13:21:41 [Broker] debug in next(), returning message at 2
2014-04-22 13:21:41 [Broker] debug Subscription 1 on anonymous.5db99ead-d2a1-4df5-b0f7-595bedeeffbc has sufficient  credit for message of 125 bytes: messages: 499 (from window of 500) bytes: unlimited
2014-04-22 13:21:41 [Broker] debug Attempting to acquire message 2 from 'test_is_null' with state 1
2014-04-22 13:21:41 [Broker] debug Message 2 retrieved from 'test_is_null'
2014-04-22 13:21:41 [Broker] debug Credit allocated for 1 on anonymous.5db99ead-d2a1-4df5-b0f7-595bedeeffbc, was messages: 499 (from window of 500) bytes: unlimited now messages: 498 (from window of 500) bytes: unlimited
2014-04-22 13:21:41 [Broker] debug next() called for cursor at 2, index set to 2 (of 2)
2014-04-22 13:21:41 [Broker] debug no message to return from next
2014-04-22 13:21:41 [Broker] debug No messages to dispatch on queue 'test_is_null'
2014-04-22 13:21:41 [Broker] debug next() called for cursor at 2, index set to 2 (of 2)
2014-04-22 13:21:41 [Broker] debug no message to return from next
2014-04-22 13:21:41 [Broker] debug No messages to dispatch on queue 'test_is_null'
2014-04-22 13:21:41 [Broker] debug clean(): 1 messages remain; head is now 0
2014-04-22 13:21:41 [Broker] debug DeliveryRecord::setEnded() id=2
2014-04-22 13:21:41 [Broker] debug Accepted 2
2014-04-22 13:21:41 [Broker] debug clean(): 0 messages remain; head is now 0
2014-04-22 13:21:41 [Broker] debug DeliveryRecord::setEnded() id=3
2014-04-22 13:21:41 [Broker] debug Accepted 3
2014-04-22 13:21:41 [Broker] debug next() called for cursor at 2, index set to 0 (of 0)
2014-04-22 13:21:41 [Broker] debug no message to return from next
2014-04-22 13:21:41 [Broker] debug No messages to dispatch on queue 'test_is_null'
2014-04-22 13:21:41 [Model] debug Delete subscription. destination:1 user:anonymous rhost:qpid.192.168.6.3:5672-192.168.6.3:60147
2014-04-22 13:21:41 [Broker] debug anonymous.5db99ead-d2a1-4df5-b0f7-595bedeeffbc: detached on broker.
2014-04-22 13:21:41 [Model] debug Delete connection. user:anonymous rhost:qpid.192.168.6.3:5672-192.168.6.3:60147