You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Jonathan Malek (JIRA)" <ji...@apache.org> on 2016/06/04 03:17:59 UTC
[jira] [Commented] (AMQ-6058) Certain VirtualTopic configurations
send messages to the wrong queue
[ https://issues.apache.org/jira/browse/AMQ-6058?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15315292#comment-15315292 ]
Jonathan Malek commented on AMQ-6058:
-------------------------------------
We have some brokers (5.11.1) configured with {{prefix="\*.\*."}}. After the upgrade to 5.13.3, I believe the change to shouldDispatch(...) is failing the destination name check, and the result is that messages are not being dispatched to the virtual topics.
A naive (but working) option would be to change the shouldDispatch(...) from:
bq. {{return prefix.contains(".\*") ? ...}}
to:
bq. {{return prefix.contains(".\*") && !prefix.startsWith("\*") ? ...}}
Which should satisfy both objectives: the original objective of AMQ-6058, and the need to support virtual topics whose prefix starts with a wildcard.
> Certain VirtualTopic configurations send messages to the wrong queue
> --------------------------------------------------------------------
>
> Key: AMQ-6058
> URL: https://issues.apache.org/jira/browse/AMQ-6058
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.12.1
> Reporter: Christopher L. Shannon
> Assignee: Christopher L. Shannon
> Fix For: 5.13.0
>
>
> When testing out configurations of VirtualTopics I noticed some of the behavior doesn't seem quite right when using certain VirtualTopic set ups.
> Consider a VirtualTopic with the default name of {{>}} and a prefix called {{q.test.vt.*.}} Normally the desired behavior is to only forward messages to consumers with that prefix. For example, if a message is published to a topic called {{mytopic}}, then the consumer would be on queue {{q.test.vt.myconsumer.mytopic}}.
> However, I've noticed that based on the interceptor logic that uses the destination map to find matching destinations, if a higher level queue exists, such as {{q.test.>}} in this case, that queue will also receive the message.
> It seems desirable that only queues starting with the defined prefix should get the message so we should probably do a quick sanity check in the VirtualTopicInterceptor to make sure the destinations that match start with the VirtualTopic prefix defined.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)