You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2020/02/19 13:01:47 UTC

[activemq] branch master updated: AMQ-7291 - allow setting properties after clearProperties for BytesMessage, closes #420

This is an automated email from the ASF dual-hosted git repository.

gtully pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq.git


The following commit(s) were added to refs/heads/master by this push:
     new 503416a  AMQ-7291 - allow setting properties after clearProperties for BytesMessage, closes #420
503416a is described below

commit 503416a00167e2910630512426df77ecc32492a2
Author: gtully <ga...@gmail.com>
AuthorDate: Wed Feb 19 13:01:25 2020 +0000

    AMQ-7291 - allow setting properties after clearProperties for BytesMessage, closes #420
---
 .../activemq/command/ActiveMQBytesMessage.java     |  6 ------
 .../activemq/command/ActiveMQBytesMessageTest.java | 24 ++++++++++++++++++++++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQBytesMessage.java b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQBytesMessage.java
index 71a39f8..199fd9e 100644
--- a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQBytesMessage.java
+++ b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQBytesMessage.java
@@ -913,12 +913,6 @@ public class ActiveMQBytesMessage extends ActiveMQMessage implements BytesMessag
     }
 
     @Override
-    public void setObjectProperty(String name, Object value) throws JMSException {
-        initializeWriting();
-        super.setObjectProperty(name, value);
-    }
-
-    @Override
     public String toString() {
         return super.toString() + " ActiveMQBytesMessage{ " + "bytesOut = " + bytesOut + ", dataOut = " + dataOut + ", dataIn = " + dataIn + " }";
     }
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQBytesMessageTest.java b/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQBytesMessageTest.java
index 0219815..6b01d05 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQBytesMessageTest.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/command/ActiveMQBytesMessageTest.java
@@ -269,6 +269,30 @@ public class ActiveMQBytesMessageTest extends TestCase {
         }
     }
 
+    public void testClearProperties() throws Exception {
+        ActiveMQBytesMessage bytesMessage = new ActiveMQBytesMessage();
+        bytesMessage.setIntProperty("one", 1);
+        // simulate send
+        bytesMessage.onSend();
+
+        assertEquals(1, bytesMessage.getIntProperty("one"));
+        assertTrue(bytesMessage.isReadOnlyProperties());
+
+        try {
+            bytesMessage.setIntProperty("two", 2);
+            fail("should have thrown b/c readonly");
+        } catch (MessageNotWriteableException expected) {
+        }
+
+        // allow writing new properties
+        bytesMessage.clearProperties();
+        assertFalse(bytesMessage.propertyExists("one"));
+        assertFalse(bytesMessage.isReadOnlyProperties());
+
+        bytesMessage.setIntProperty("two", 2);
+        assertEquals(2, bytesMessage.getIntProperty("two"));
+    }
+
     public void testReset() throws JMSException {
         ActiveMQBytesMessage message = new ActiveMQBytesMessage();
         try {