diff options
author | Martin Ritchie <ritchiem@apache.org> | 2007-01-31 17:25:42 +0000 |
---|---|---|
committer | Martin Ritchie <ritchiem@apache.org> | 2007-01-31 17:25:42 +0000 |
commit | 335e726cb1c219ad4e07343f756fc758f6bed352 (patch) | |
tree | 3a87649a804c13765f4551e6fedcb472d9630fa6 /java | |
parent | 3835253610d675befdc21ff6943470c94d23f7c8 (diff) | |
download | qpid-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.java | 15 |
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 |