[
https://issues.apache.org/jira/browse/ARTEMIS-2531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Clebert Suconic closed ARTEMIS-2531.
------------------------------------
> FederatedQueue has invalid filter string leading to an infinite consumer loop
> -----------------------------------------------------------------------------
>
> Key: ARTEMIS-2531
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2531
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 2.10.1
> Reporter: Christopher L. Shannon
> Assignee: Christopher L. Shannon
> Priority: Major
> Fix For: 2.11.0
>
> Time Spent: 3h 10m
> Remaining Estimate: 0h
>
> FederatedQueue by default is supposed to set a metadataFilter to will exclude
> reacting to federated consumers so a loop isn't created. Unfortunately the
> filter does not work because there is a hyphen in the key name so it gets
> ignored. The name of the key used is {{federation-name}} . The key property
> needs to be prefixed with "hyphenated_props:" in the expression for the
> filter to work. Currently an infinite loop and consumers will be rapidly
> created until crashing the broker unless the filter is fixed (if using by
> directional federated queues). The other option is to change key name but
> this works too.
> The following documentation describes hyphens in filter expressions:
> [https://activemq.apache.org/components/artemis/documentation/latest/filter-expressions.html]
> From the docs:
> {panel}
> The JMS spec also states that property identifiers (and therefore the
> identifiers which are valid for use in a filter expression) are an,
> "unlimited-length sequence of letters and digits, the first of which must be
> a letter. A letter is any character for which the method
> Character.isJavaLetter returns true. This includes _ and $. A letter or digit
> is any character for which the method Character.isJavaLetterOrDigit returns
> true." *This constraint means that hyphens (i.e. -) cannot be used. However,
> this constraint can be overcome by using the hyphenated_props: prefix. For
> example, if a message had the foo-bar property set to 0 then the filter
> expression hyphenated_props:foo-bar = 0 would match it.*
> {panel}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)