[
https://issues.apache.org/jira/browse/ARTEMIS-234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15374477#comment-15374477
]
Michael Justin commented on ARTEMIS-234:
----------------------------------------
This is a solution for clients who connect with STOMP 1.2. My test used STOMP
1.0, which is not specified to have a content-type header.
Apache ActiveMQ with STOMP 1.0 uses the logic of adding the content-length
header for binary payloads. Without this logic, plain STOMP 1.0 clients would
not be able to know if a message is binary data or text.
If you check my example, you will see that the content-type header is missing
when the client connects with STOMP 1.0.
So either the (STOMP 1.1/1.2) content-type header should always be present in
STOMP 1.0 messages, or the content-length should only be present in binary
messages.
> STOMP text message frames must not have a content-length header
> ---------------------------------------------------------------
>
> Key: ARTEMIS-234
> URL: https://issues.apache.org/jira/browse/ARTEMIS-234
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Stomp
> Affects Versions: 1.1.0
> Environment: Windows 8, Java 8
> Reporter: Michael Justin
>
> In Artemis 1.0.0, distinction between text and binary message was possible
> based on the content-length header as documented: "A Stomp client can check
> the presence of the content-length header to determine the type of the
> message body (String or bytes)."
> With Artemis 1.1.0 the MESSAGE frame always includes the content-length
> header, so that the distiction is not possible:
> SEND
> destination:jms.queue.ExampleQueue
> Test message
> received:
> MESSAGE
> subscription:{B806BF9D-B761-419C-8645-BBE3AED5CAF8}
> message-id:2147488964
> destination:jms.queue.ExampleQueue
> expires:0
> redelivered:false
> priority:4
> timestamp:1443278118819
> content-length:12
> Test message
> Additional information: the documented behaviour is also implemented in
> Apache ActiveMQ:
> "Stomp is a very simple protocol - that's part of the beauty of it! As such,
> it does not have knowledge of JMS messages such as TextMessages or
> BytesMessages. The protocol does however support a content-length header. To
> provide more robust interaction between Stomp and JMS clients, ActiveMQ keys
> off of the inclusion of this header to determine what message type to create
> when sending from Stomp to JMS."
> Fixing this issue would increase the compatibility of Artemis with ActiveMQ
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)