summaryrefslogtreecommitdiff
path: root/qpid/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
commit72c7f1489dde8278a535061e4143ebb3a86cc1e5 (patch)
tree552f73107d70bd3f1e7a8edebbf7bc796747535b /qpid/java
parent61c8e33910c9ae4336747790c05d1494737a5511 (diff)
downloadqpid-python-72c7f1489dde8278a535061e4143ebb3a86cc1e5.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@501914 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java15
1 files changed, 7 insertions, 8 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java
index 50051fdc34..0abf464d15 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java
+++ b/qpid/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