You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cs...@apache.org on 2015/07/30 19:44:20 UTC

activemq git commit: https://issues.apache.org/jira/browse/AMQ-5857

Repository: activemq
Updated Branches:
  refs/heads/master de86f473f -> 84ec047d2


https://issues.apache.org/jira/browse/AMQ-5857

Changing ActiveMQTextMessage to clear out the text field on marshal to
a ByteSequence to prevent the data from being stored in memory twice.


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/84ec047d
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/84ec047d
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/84ec047d

Branch: refs/heads/master
Commit: 84ec047d2ffdee9630f74bf939746cd5ff2d0e12
Parents: de86f47
Author: Christopher L. Shannon (cshannon) <ch...@gmail.com>
Authored: Mon Jul 13 15:31:14 2015 +0000
Committer: Christopher L. Shannon (cshannon) <ch...@gmail.com>
Committed: Thu Jul 30 16:59:05 2015 +0000

----------------------------------------------------------------------
 .../apache/activemq/command/ActiveMQTextMessage.java    | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/84ec047d/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java
index 347db78..cca09be 100755
--- a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java
+++ b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQTextMessage.java
@@ -47,6 +47,7 @@ public class ActiveMQTextMessage extends ActiveMQMessage implements TextMessage
 
     protected String text;
 
+    @Override
     public Message copy() {
         ActiveMQTextMessage copy = new ActiveMQTextMessage();
         copy(copy);
@@ -58,20 +59,24 @@ public class ActiveMQTextMessage extends ActiveMQMessage implements TextMessage
         copy.text = text;
     }
 
+    @Override
     public byte getDataStructureType() {
         return DATA_STRUCTURE_TYPE;
     }
 
+    @Override
     public String getJMSXMimeType() {
         return "jms/text-message";
     }
 
+    @Override
     public void setText(String text) throws MessageNotWriteableException {
         checkReadOnlyBody();
         this.text = text;
         setContent(null);
     }
 
+    @Override
     public String getText() throws JMSException {
         if (text == null && getContent() != null) {
             text = decodeContent();
@@ -111,9 +116,10 @@ public class ActiveMQTextMessage extends ActiveMQMessage implements TextMessage
         return text;
     }
 
+    @Override
     public void beforeMarshall(WireFormat wireFormat) throws IOException {
         super.beforeMarshall(wireFormat);
-        storeContent();
+        storeContentAndClear();
     }
 
     @Override
@@ -146,6 +152,7 @@ public class ActiveMQTextMessage extends ActiveMQMessage implements TextMessage
 
     // see https://issues.apache.org/activemq/browse/AMQ-2103
     // and https://issues.apache.org/activemq/browse/AMQ-2966
+    @Override
     public void clearMarshalledState() throws JMSException {
         super.clearMarshalledState();
         this.text = null;
@@ -162,11 +169,13 @@ public class ActiveMQTextMessage extends ActiveMQMessage implements TextMessage
      * @throws JMSException if the JMS provider fails to clear the message body
      *                 due to some internal error.
      */
+    @Override
     public void clearBody() throws JMSException {
         super.clearBody();
         this.text = null;
     }
 
+    @Override
     public int getSize() {
         if (size == 0 && content == null && text != null) {
             size = getMinimumMessageSize();
@@ -178,6 +187,7 @@ public class ActiveMQTextMessage extends ActiveMQMessage implements TextMessage
         return super.getSize();
     }
 
+    @Override
     public String toString() {
         try {
             String text = this.text;