[ 
https://issues.apache.org/jira/browse/ARTEMIS-4657?focusedWorklogId=910171&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-910171
 ]

ASF GitHub Bot logged work on ARTEMIS-4657:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 15/Mar/24 19:14
            Start Date: 15/Mar/24 19:14
    Worklog Time Spent: 10m 
      Work Description: gemmellr commented on code in PR #4833:
URL: https://github.com/apache/activemq-artemis/pull/4833#discussion_r1526725736


##########
artemis-protocols/artemis-openwire-protocol/src/main/java/org/apache/activemq/artemis/core/protocol/openwire/OpenWireMessageConverter.java:
##########
@@ -590,9 +591,11 @@ private static ActiveMQMessage 
toAMQMessage(MessageReference reference,
       }
       amqMsg.setCommandId(commandId);
 
-      final SimpleString corrId = getObjectProperty(coreMessage, 
SimpleString.class, OpenWireConstants.JMS_CORRELATION_ID_PROPERTY);
-      if (corrId != null) {
-         amqMsg.setCorrelationId(corrId.toString());
+      final Object correlationID = coreMessage.getCorrelationID();
+      if (correlationID instanceof String || correlationID instanceof 
SimpleString) {
+         amqMsg.setCorrelationId(correlationID.toString());
+      } else if (correlationID instanceof byte[]) {
+         amqMsg.setCorrelationId(new String((byte[])correlationID, 
StandardCharsets.UTF_8));

Review Comment:
   Yeah I forgot about that nugget; so instead of blowing up or sending nothing 
it will just send a corrupted representation of the original bytes. Arguably 
worse? :)
   
   Per the next bit of that javadoc, you'd need to actually decode the bytes as 
UTF-8 rather than just creating a String instance with them, so that the 
decoder would instead blow up for garbage rather than substitute. Tim's idea 
for malformed bytes is simple, but as per your link the simplest is actually 
just a single byte that isnt an ASCII char or the multi-byte prefix.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 910171)
    Time Spent: 5h  (was: 4h 50m)

> Support correlation ID compatibility between JMS clients
> --------------------------------------------------------
>
>                 Key: ARTEMIS-4657
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4657
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Justin Bertram
>            Assignee: Justin Bertram
>            Priority: Major
>          Time Spent: 5h
>  Remaining Estimate: 0h
>
> Currently there are some use-cases with both {{String}} and {{byte[]}} values 
> of JMS correlation ID that don't work between Core, OpenWire, and AMQP. We 
> should support as many as possible.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to