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 2016/04/11 14:32:52 UTC
activemq git commit: https://issues.apache.org/jira/browse/AMQ-6142
Repository: activemq
Updated Branches:
refs/heads/master 837da7e58 -> e69c2cbad
https://issues.apache.org/jira/browse/AMQ-6142
Moving the bytes copy to the parent Message class to solve this this
issue for all message types as that is the root cause
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/e69c2cba
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/e69c2cba
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/e69c2cba
Branch: refs/heads/master
Commit: e69c2cbad6611fa355bd9eb592f03bd3b8f90abb
Parents: 837da7e
Author: Christopher L. Shannon (cshannon) <ch...@gmail.com>
Authored: Mon Apr 11 12:31:57 2016 +0000
Committer: Christopher L. Shannon (cshannon) <ch...@gmail.com>
Committed: Mon Apr 11 12:31:57 2016 +0000
----------------------------------------------------------------------
.../apache/activemq/command/ActiveMQBytesMessage.java | 2 --
.../main/java/org/apache/activemq/command/Message.java | 11 +++++++++--
2 files changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/e69c2cba/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQBytesMessage.java
----------------------------------------------------------------------
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 5d618ac..8806028 100755
--- a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQBytesMessage.java
+++ b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQBytesMessage.java
@@ -890,8 +890,6 @@ public class ActiveMQBytesMessage extends ActiveMQMessage implements BytesMessag
Inflater inflater = new Inflater();
ByteArrayOutputStream decompressed = new ByteArrayOutputStream();
try {
- //copy to prevent a race condition - AMQ-6142
- dataSequence = new ByteSequence(dataSequence.getData(), dataSequence.getOffset(), dataSequence.getLength());
length = ByteSequenceData.readIntBig(dataSequence);
dataSequence.offset = 0;
byte[] data = Arrays.copyOfRange(dataSequence.getData(), 4, dataSequence.getLength());
http://git-wip-us.apache.org/repos/asf/activemq/blob/e69c2cba/activemq-client/src/main/java/org/apache/activemq/command/Message.java
----------------------------------------------------------------------
diff --git a/activemq-client/src/main/java/org/apache/activemq/command/Message.java b/activemq-client/src/main/java/org/apache/activemq/command/Message.java
index b2640b3..a500768 100755
--- a/activemq-client/src/main/java/org/apache/activemq/command/Message.java
+++ b/activemq-client/src/main/java/org/apache/activemq/command/Message.java
@@ -143,8 +143,8 @@ public abstract class Message extends BaseCommand implements MarshallAware, Mess
copy.properties = properties;
}
- copy.content = content;
- copy.marshalledProperties = marshalledProperties;
+ copy.content = copyByteSequence(content);
+ copy.marshalledProperties = copyByteSequence(marshalledProperties);
copy.dataStructure = dataStructure;
copy.readOnlyProperties = readOnlyProperties;
copy.readOnlyBody = readOnlyBody;
@@ -165,6 +165,13 @@ public abstract class Message extends BaseCommand implements MarshallAware, Mess
// copy.referenceCount = referenceCount;
}
+ private ByteSequence copyByteSequence(ByteSequence content) {
+ if (content != null) {
+ return new ByteSequence(content.getData(), content.getOffset(), content.getLength());
+ }
+ return null;
+ }
+
public Object getProperty(String name) throws IOException {
if (properties == null) {
if (marshalledProperties == null) {