Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
The CORE protocol does not honor consumers with a filter when used on FQQN topics, leading to no filtering occurring. For AMQP, the consumer is filtered by the broker but the subscription queue is not, leading to retention of non-matching messages.
Steps to reproduce:
Start a consumer using CLI:
./artemis consumer --url tcp://localhost:61616 --destination topic://topic1::topic1.queue1 --protocol=core --message-count 1 --filter "foo='bar'" --verbose
Send a message without the filter string:
./artemis producer --url tcp://localhost:61616 --destination topic://topic1::topic1.queue1 --protocol=core --message-count 1 --message "some text"
You can observe the CORE client consuming the message which does not contain the filter String:
Connection brokerURL = tcp://localhost:61616 Consumer:: filter = foo='bar' Consumer ActiveMQTopic[topic1::topic1.queue1], thread=0 wait until 1 messages are consumed Consumer ActiveMQTopic[topic1::topic1.queue1], thread=0 Received some text JMS Message ID:ID:a00cbea3-dda7-11ed-9c2d-b42e99ea6f5c Received text sized at 9 Consumer ActiveMQTopic[topic1::topic1.queue1], thread=0 Consumed: 1 messages Consumer ActiveMQTopic[topic1::topic1.queue1], thread=0 Elapsed time in second : 8 s Consumer ActiveMQTopic[topic1::topic1.queue1], thread=0 Elapsed time in milli second : 8140 milli seconds Consumer ActiveMQTopic[topic1::topic1.queue1], thread=0 Consumed: 1 messages Consumer ActiveMQTopic[topic1::topic1.queue1], thread=0 Consumer thread finished