activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cshan...@apache.org
Subject activemq git commit: https://issues.apache.org/jira/browse/AMQ-6218
Date Mon, 21 Mar 2016 19:42:40 GMT
Repository: activemq
Updated Branches:
  refs/heads/activemq-5.13.x 531634fca -> 93bc7030e


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

Fixing copy method of ActiveMQTextMessage to prevent a race condition
when concurrent store and dispatch is used with Queues

We may need explicity synchronization between the text and content fields
in the future if other issues pop up

(cherry picked from commit ea09159a4087212964787e7cf68ef30170d115f0)


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

Branch: refs/heads/activemq-5.13.x
Commit: 93bc7030e263d6ed5bab7b778b15d50d46fe2c66
Parents: 531634f
Author: Christopher L. Shannon (cshannon) <christopher.l.shannon@gmail.com>
Authored: Mon Mar 21 19:17:26 2016 +0000
Committer: Christopher L. Shannon (cshannon) <christopher.l.shannon@gmail.com>
Committed: Mon Mar 21 19:42:00 2016 +0000

----------------------------------------------------------------------
 .../org/apache/activemq/command/ActiveMQTextMessage.java     | 8 ++++++++
 1 file changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/93bc7030/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 97fc9e4..4618341 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
@@ -55,6 +55,12 @@ public class ActiveMQTextMessage extends ActiveMQMessage implements TextMessage
     }
 
     private void copy(ActiveMQTextMessage copy) {
+        //AMQ-6218 - Save text before calling super.copy() to prevent a race condition when
+        //concurrent store and dispatch is enabled in KahaDB
+        //The issue is sometimes beforeMarshall() gets called in between the time content
and
+        //text are copied to the new object leading to both fields being null when text should
+        //not be null
+        String text = this.text;
         super.copy(copy);
         copy.text = text;
     }
@@ -79,9 +85,11 @@ public class ActiveMQTextMessage extends ActiveMQMessage implements TextMessage
     @Override
     public String getText() throws JMSException {
         ByteSequence content = getContent();
+        String text = this.text;
 
         if (text == null && content != null) {
             text = decodeContent(content);
+            this.text = text;
             setContent(null);
             setCompressed(false);
         }


Mime
View raw message