You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ri...@apache.org on 2007/01/31 18:25:43 UTC

svn commit: r501914 - /incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java

Author: ritchiem
Date: Wed Jan 31 09:25:42 2007
New Revision: 501914

URL: http://svn.apache.org/viewvc?view=rev&rev=501914
Log:
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.

Modified:
    incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java

Modified: incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java?view=diff&rev=501914&r1=501913&r2=501914
==============================================================================
--- incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java (original)
+++ incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/WeakReferenceMessageHandle.java Wed Jan 31 09:25:42 2007
@@ -57,7 +57,7 @@
 
     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 @@
 
     /**
      * Content bodies are set <i>before</i> the publish and header frames
+     *
      * @param storeContext
      * @param messageId
      * @param contentBody
@@ -115,10 +116,9 @@
      */
     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 @@
             {
                 _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 @@
 
     /**
      * This is called when all the content has been received.
+     *
      * @param publishBody
      * @param contentHeaderBody
      * @throws AMQException