[prev in list] [next in list] [prev in thread] [next in thread]
List: activemq-commits
Subject: activemq git commit: https://issues.apache.org/jira/browse/AMQ-5857
From: cshannon () apache ! org
Date: 2015-07-31 18:46:45
Message-ID: f5d26ad7c17546af9f203c4b9e7b7c51 () git ! apache ! org
[Download RAW message or body]
Repository: activemq
Updated Branches:
refs/heads/master ac3d08864 -> 310c2bb05
https://issues.apache.org/jira/browse/AMQ-5857
Fixing a potential race condition in the storeContent
method of ActiveMQTextMessage
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/310c2bb0
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/310c2bb0
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/310c2bb0
Branch: refs/heads/master
Commit: 310c2bb05916811a25b84d76f11fb84b40087914
Parents: ac3d088
Author: Christopher L. Shannon (cshannon) <christopher.l.shannon@gmail.com>
Authored: Fri Jul 31 18:27:12 2015 +0000
Committer: Christopher L. Shannon (cshannon) <christopher.l.shannon@gmail.com>
Committed: Fri Jul 31 18:32:02 2015 +0000
----------------------------------------------------------------------
.../activemq/command/ActiveMQTextMessage.java | 31 ++++++++++----------
1 file changed, 16 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/310c2bb0/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 cca09be..97fc9e4 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
@@ -78,29 +78,28 @@ public class ActiveMQTextMessage extends ActiveMQMessage \
implements TextMessage
@Override
public String getText() throws JMSException {
- if (text == null && getContent() != null) {
- text = decodeContent();
+ ByteSequence content = getContent();
+
+ if (text == null && content != null) {
+ text = decodeContent(content);
setContent(null);
setCompressed(false);
}
return text;
}
- private String decodeContent() throws JMSException {
+ private String decodeContent(ByteSequence bodyAsBytes) throws JMSException {
String text = null;
- if (getContent() != null) {
+ if (bodyAsBytes != null) {
InputStream is = null;
try {
- ByteSequence bodyAsBytes = getContent();
- if (bodyAsBytes != null) {
- is = new ByteArrayInputStream(bodyAsBytes);
- if (isCompressed()) {
- is = new InflaterInputStream(is);
- }
- DataInputStream dataIn = new DataInputStream(is);
- text = MarshallingSupport.readUTF8(dataIn);
- dataIn.close();
+ is = new ByteArrayInputStream(bodyAsBytes);
+ if (isCompressed()) {
+ is = new InflaterInputStream(is);
}
+ DataInputStream dataIn = new DataInputStream(is);
+ text = MarshallingSupport.readUTF8(dataIn);
+ dataIn.close();
} catch (IOException ioe) {
throw JMSExceptionSupport.create(ioe);
} finally {
@@ -132,6 +131,7 @@ public class ActiveMQTextMessage extends ActiveMQMessage \
implements TextMessage public void storeContent() {
try {
ByteSequence content = getContent();
+ String text = this.text;
if (content == null && text != null) {
ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
OutputStream os = bytesOut;
@@ -141,7 +141,7 @@ public class ActiveMQTextMessage extends ActiveMQMessage \
implements TextMessage os = new DeflaterOutputStream(os);
}
DataOutputStream dataOut = new DataOutputStream(os);
- MarshallingSupport.writeUTF8(dataOut, this.text);
+ MarshallingSupport.writeUTF8(dataOut, text);
dataOut.close();
setContent(bytesOut.toByteSequence());
}
@@ -177,6 +177,7 @@ public class ActiveMQTextMessage extends ActiveMQMessage \
implements TextMessage
@Override
public int getSize() {
+ String text = this.text;
if (size == 0 && content == null && text != null) {
size = getMinimumMessageSize();
if (marshalledProperties != null) {
@@ -192,7 +193,7 @@ public class ActiveMQTextMessage extends ActiveMQMessage \
implements TextMessage try {
String text = this.text;
if( text == null ) {
- text = decodeContent();
+ text = decodeContent(getContent());
}
if (text != null) {
text = MarshallingSupport.truncate64(text);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic