activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Johan Stenberg (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ARTEMIS-1578) Cannot use "user-id" property in AMQP message selector
Date Mon, 08 Jan 2018 17:06:00 GMT

    [ https://issues.apache.org/jira/browse/ARTEMIS-1578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16316594#comment-16316594
] 

Johan Stenberg commented on ARTEMIS-1578:
-----------------------------------------

Thanks for your response Timothy. So, when a plain AMQP client tries to perform message selection
it has to use a JMS-style filter which requires it to specify JMS specific identifiers such
as "JMSXUserID" instead of AMQP property "user-id". If that is seen as "works as designed"
it might be helpful to have a small section about message filtering at https://activemq.apache.org/artemis/docs/latest/using-AMQP.html
describing the intended behaviour.


> Cannot use "user-id" property in AMQP message selector
> ------------------------------------------------------
>
>                 Key: ARTEMIS-1578
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1578
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.4.0
>            Reporter: Johan Stenberg
>            Priority: Minor
>         Attachments: Artemis1578Test.java, pom.xml
>
>
> It is not possible to use the "user-id" property specified in http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-properties
for message selection in a subscription. Instead one has to use the JMS specific "JMSXUserID"
property name.
> This could be maybe fixed by changing the line https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java#L912
to
> {code:java}
> } else if (key.equals(MessageUtil.JMSXUSERID) || key.equals("user-id") {
> {code}
> but is also prevented by the org.apache.activemq.artemis.selector.impl.SelectorParser
which interprets "user-id" as an arethmetic operations.
> It is also not possible to use the "userId" property instead - which is used as key in
the HashMap [AMQPMessage#_properties|https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java#L88]
- because [AMQPMessage#getObjectProperty|https://github.com/apache/activemq-artemis/blob/master/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/broker/AMQPMessage.java#L919]
only resolves values from the [application properties|http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-application-properties]
of an AMQP message.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message