[
https://issues.apache.org/jira/browse/QPIDJMS-89?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14639535#comment-14639535
]
Robbie Gemmell commented on QPIDJMS-89:
---------------------------------------
Hi Alex,
This isn't actually a bug but instead acting as intended, in keeping with the
current state of the AMQP JMS Mapping (which the client implements) work
underway at OASIS. The reason this approach was taken is that there is no way
to tell without deep inspection what is in the map and so similarly whether its
contents would actually be consumable via the JMS API (JMS maps are far more
restrictive in their allowed contents than AMQP maps are). The old client was
originally a prototype and simply ignored that fact.
The idea of doing it this way was also a bit forward-looking towards supporting
JMS 2.0 and its support of the 'getBody()' method, with that rendering the
MapMessage vs ObjectMessage distinction less interesting since you could just
grab the underlying map the same from either without knowing what type of
message it is. Something I had thought of was adding an optional configuration
to let users decide that all maps should be MapMessages, if they prefer that
and know it will be the case that the contents are 'JMS safe', but that isn't
something we have got to doing yet.
I'm going away for a bit, so I probably won't see any replies until mid next
week.
Robbie
> MapMessages that are not annotated as such, are handled as ObjectMessages by
> the consumer instead
> -------------------------------------------------------------------------------------------------
>
> Key: QPIDJMS-89
> URL: https://issues.apache.org/jira/browse/QPIDJMS-89
> Project: Qpid JMS
> Issue Type: Bug
> Components: qpid-jms-client
> Affects Versions: 0.2.0, 0.3.0
> Reporter: Alex Plischke
> Labels: qpidclient
> Attachments:
> 0001-QPIDJMS-89-Handle-unannoted-MapMessages-during-consu.patch
>
>
> If the annotation type "x-opt-jms-msg-type" is missing from the message (e.g.
> the message was created by the old qpid amqp 1.0 client) and this message is
> supposed to be a MapMessage, then the consumer will create an ObjectMessage
> instead.
> This is due to AmqpJmsMessageBuilder.createWithoutAnnotation() not handling
> the MapMessage case, which ends up creating an ObjectMessage instead.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]