summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorMartin Ritchie <ritchiem@apache.org>2007-01-31 17:25:42 +0000
committerMartin Ritchie <ritchiem@apache.org>2007-01-31 17:25:42 +0000
commit335e726cb1c219ad4e07343f756fc758f6bed352 (patch)
tree3a87649a804c13765f4551e6fedcb472d9630fa6 /java
parent3835253610d675befdc21ff6943470c94d23f7c8 (diff)
downloadqpid-python-335e726cb1c219ad4e07343f756fc758f6bed352.tar.gz
QPID-334 WeakReferenceMessageHandle uses a singleton so when body is purged by gc it cannot be reset
Changed to use an Arraylist of size 1 as per JIRA entry. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@501914 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
-rw-r--r--java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java15
1 files changed, 7 insertions, 8 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java b/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java
index 50051fdc34..0abf464d15 100644
--- a/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java
+++ b/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java
@@ -57,7 +57,7 @@ public class WeakReferenceMessageHandle implements AMQMessageHandle
public ContentHeaderBody getContentHeaderBody(Long messageId) throws AMQException
{
- ContentHeaderBody chb = (_contentHeaderBody != null?_contentHeaderBody.get():null);
+ ContentHeaderBody chb = (_contentHeaderBody != null ? _contentHeaderBody.get() : null);
if (chb == null)
{
MessageMetaData mmd = _messageStore.getMessageMetaData(messageId);
@@ -107,6 +107,7 @@ public class WeakReferenceMessageHandle implements AMQMessageHandle
/**
* Content bodies are set <i>before</i> the publish and header frames
+ *
* @param storeContext
* @param messageId
* @param contentBody
@@ -115,10 +116,9 @@ public class WeakReferenceMessageHandle implements AMQMessageHandle
*/
public void addContentBodyFrame(StoreContext storeContext, Long messageId, ContentBody contentBody, boolean isLastContentBody) throws AMQException
{
- if(_contentBodies == null && isLastContentBody)
+ if (_contentBodies == null && isLastContentBody)
{
- _contentBodies = Collections.singletonList(new WeakReference<ContentBody>(contentBody));
-
+ _contentBodies = new ArrayList<WeakReference<ContentBody>>(1);
}
else
{
@@ -126,16 +126,14 @@ public class WeakReferenceMessageHandle implements AMQMessageHandle
{
_contentBodies = new LinkedList<WeakReference<ContentBody>>();
}
-
-
- _contentBodies.add(new WeakReference<ContentBody>(contentBody));
}
+ _contentBodies.add(new WeakReference<ContentBody>(contentBody));
_messageStore.storeContentBodyChunk(storeContext, messageId, _contentBodies.size() - 1, contentBody, isLastContentBody);
}
public BasicPublishBody getPublishBody(Long messageId) throws AMQException
{
- BasicPublishBody bpb = (_publishBody != null?_publishBody.get():null);
+ BasicPublishBody bpb = (_publishBody != null ? _publishBody.get() : null);
if (bpb == null)
{
MessageMetaData mmd = _messageStore.getMessageMetaData(messageId);
@@ -166,6 +164,7 @@ public class WeakReferenceMessageHandle implements AMQMessageHandle
/**
* This is called when all the content has been received.
+ *
* @param publishBody
* @param contentHeaderBody
* @throws AMQException