You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2017/11/08 14:50:33 UTC

[2/3] qpid-jms-amqp-0-x git commit: QPID-7897, QPID-7899: [Java Client, AMQP 0-x] Do not convert to/from String in Message#set-/getJMSCorrelationIDAsBytes()

QPID-7897, QPID-7899: [Java Client, AMQP 0-x] Do not convert to/from String in Message#set-/getJMSCorrelationIDAsBytes()


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms-amqp-0-x/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms-amqp-0-x/commit/8774a1c3
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms-amqp-0-x/tree/8774a1c3
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms-amqp-0-x/diff/8774a1c3

Branch: refs/heads/master
Commit: 8774a1c38d596e17683aac1a285ec437d82c7767
Parents: 472aea7
Author: Lorenz Quack <lq...@apache.org>
Authored: Wed Nov 8 14:29:14 2017 +0000
Committer: Lorenz Quack <lq...@apache.org>
Committed: Wed Nov 8 14:49:18 2017 +0000

----------------------------------------------------------------------
 .../client/message/AMQMessageDelegate_0_10.java |  7 +++--
 .../client/message/AMQMessageDelegate_0_8.java  |  5 ++--
 .../qpid/test/unit/message/MessageTest.java     | 28 ++++++++++++++++++++
 3 files changed, 34 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms-amqp-0-x/blob/8774a1c3/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java b/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
index 398a6e8..dde0a1b 100644
--- a/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
+++ b/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
@@ -21,6 +21,7 @@
 
 package org.apache.qpid.client.message;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;
@@ -252,15 +253,13 @@ public class AMQMessageDelegate_0_10 extends AbstractAMQMessageDelegate
 
     public void setJMSCorrelationID(String correlationId) throws JMSException
     {
-
-        setJMSCorrelationIDAsBytes(correlationId == null ? null : correlationId.getBytes());
+        setJMSCorrelationIDAsBytes(correlationId == null ? null : correlationId.getBytes(StandardCharsets.UTF_8));
     }
 
     public String getJMSCorrelationID() throws JMSException
     {
-
         byte[] correlationIDAsBytes = getJMSCorrelationIDAsBytes();
-        return correlationIDAsBytes == null ? null : new String(correlationIDAsBytes);
+        return correlationIDAsBytes == null ? null : new String(correlationIDAsBytes, StandardCharsets.UTF_8);
     }
 
     public Destination getJMSReplyTo()

http://git-wip-us.apache.org/repos/asf/qpid-jms-amqp-0-x/blob/8774a1c3/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_8.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_8.java b/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_8.java
index 8e8e00d..cb61770 100644
--- a/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_8.java
+++ b/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_8.java
@@ -252,12 +252,13 @@ public class AMQMessageDelegate_0_8 extends AbstractAMQMessageDelegate
 
     public byte[] getJMSCorrelationIDAsBytes() throws JMSException
     {
-        return getContentHeaderProperties().getCorrelationIdAsString().getBytes();
+        final AMQShortString correlationId = getContentHeaderProperties().getCorrelationId();
+        return correlationId == null ? null : correlationId.getBytes();
     }
 
     public void setJMSCorrelationIDAsBytes(byte[] bytes) throws JMSException
     {
-        getContentHeaderProperties().setCorrelationId(new String(bytes));
+        getContentHeaderProperties().setCorrelationId(new AMQShortString(bytes));
     }
 
     public void setJMSCorrelationID(String correlationId) throws JMSException

http://git-wip-us.apache.org/repos/asf/qpid-jms-amqp-0-x/blob/8774a1c3/client/src/test/java/org/apache/qpid/test/unit/message/MessageTest.java
----------------------------------------------------------------------
diff --git a/client/src/test/java/org/apache/qpid/test/unit/message/MessageTest.java b/client/src/test/java/org/apache/qpid/test/unit/message/MessageTest.java
new file mode 100644
index 0000000..fc263d2
--- /dev/null
+++ b/client/src/test/java/org/apache/qpid/test/unit/message/MessageTest.java
@@ -0,0 +1,28 @@
+package org.apache.qpid.test.unit.message;
+
+import static org.junit.Assert.assertArrayEquals;
+
+import org.apache.qpid.client.message.AMQMessageDelegateFactory;
+import org.apache.qpid.client.message.JMSTextMessage;
+import org.apache.qpid.test.utils.QpidTestCase;
+
+public class MessageTest extends QpidTestCase
+{
+    private JMSTextMessage _testTextMessage;
+
+    @Override
+    protected void setUp() throws Exception
+    {
+        super.setUp();
+        _testTextMessage = new JMSTextMessage(AMQMessageDelegateFactory.FACTORY_0_8);
+        _testTextMessage.setText("testTextMessage text");
+    }
+
+    public void testJMSCorrelationIdAdBytesWithNonUtf8Bytes() throws Exception
+    {
+        // QPID-7897 and QPID-7899
+        byte[] correlationId = new byte[]{(byte) 0xc3, 0x28};
+        _testTextMessage.setJMSCorrelationIDAsBytes(correlationId);
+        assertArrayEquals("", correlationId, _testTextMessage.getJMSCorrelationIDAsBytes());
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org