You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2015/12/13 22:23:54 UTC

svn commit: r1719839 - in /qpid/java/trunk: bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/ broker-core/src/main/java/org/apache/qpid/server/logging/ broker-core/src/main/java/org/apache/qpid/server/message/ broker-core/src/main/java/or...

Author: rgodfrey
Date: Sun Dec 13 21:23:53 2015
New Revision: 1719839

URL: http://svn.apache.org/viewvc?rev=1719839&view=rev
Log:
QPID-6945 : Provide only one mechanism for retrieving data from a message object

Modified:
    qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/PathContent.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/MessageContentSource.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Content.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaDataType.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/txn/MockServerMessage.java
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
    qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10_to_Internal.java
    qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
    qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_v0_8_to_Internal.java
    qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_from_1_0.java
    qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
    qpid/java/trunk/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
    qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
    qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
    qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
    qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java

Modified: qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java (original)
+++ qpid/java/trunk/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/AbstractBDBMessageStore.java Sun Dec 13 21:23:53 2015
@@ -1101,20 +1101,6 @@ public abstract class AbstractBDBMessage
             return this;
         }
 
-        @Override
-        public synchronized int getContent(final ByteBuffer dst)
-        {
-            // These do not need to be disposed of because getContentAsByteBuffer() retains a reference
-            Collection<QpidByteBuffer> allContent = getContentAsByteBuffer();
-            int length = 0;
-            for(QpidByteBuffer contentChunk : allContent)
-            {
-                length += contentChunk.remaining();
-                contentChunk.copyTo(dst);
-            }
-            return length;
-        }
-
         /**
          * returns QBBs containing the content. The caller must not dispose of them because we keep a reference in _messageDataRef.
          */

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/PathContent.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/PathContent.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/PathContent.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/PathContent.java Sun Dec 13 21:23:53 2015
@@ -75,4 +75,9 @@ public class PathContent implements Cont
             throw new FileNotFoundException();
         }
     }
+
+    @Override
+    public void release()
+    {
+    }
 }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/AbstractServerMessageImpl.java Sun Dec 13 21:23:53 2015
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.server.message;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -169,24 +168,6 @@ public abstract class AbstractServerMess
     }
 
     @Override
-    final public int getContent(ByteBuffer buf)
-    {
-        StoredMessage<T> storedMessage = getStoredMessage();
-        boolean wasInMemory = storedMessage.isInMemory();
-        try
-        {
-            return storedMessage.getContent(buf);
-        }
-        finally
-        {
-            if (!wasInMemory)
-            {
-                storedMessage.flowToDisk();
-            }
-        }
-    }
-
-    @Override
     final public Collection<QpidByteBuffer> getContent()
     {
         StoredMessage<T> storedMessage = getStoredMessage();

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/MessageContentSource.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/MessageContentSource.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/MessageContentSource.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/MessageContentSource.java Sun Dec 13 21:23:53 2015
@@ -28,7 +28,6 @@ import org.apache.qpid.bytebuffer.QpidBy
 
 public interface MessageContentSource
 {
-    int getContent(ByteBuffer buf);
     Collection<QpidByteBuffer> getContent();
 
     long getSize();

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/message/internal/InternalMessage.java Sun Dec 13 21:23:53 2015
@@ -25,7 +25,6 @@ import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -224,18 +223,6 @@ public class InternalMessage extends Abs
                     }
 
                     @Override
-                    public int getContent(final ByteBuffer dst)
-                    {
-                        int size = bytes.length;
-                        if (dst.remaining() < size)
-                        {
-                            size = dst.remaining();
-                        }
-                        dst.put(bytes, 0 ,size);
-                        return size;
-                    }
-
-                    @Override
                     public Collection<QpidByteBuffer> getContent()
                     {
                         return Collections.singleton(QpidByteBuffer.wrap(bytes));

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Content.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Content.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Content.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/Content.java Sun Dec 13 21:23:53 2015
@@ -27,4 +27,6 @@ import java.io.OutputStream;
 public interface Content
 {
     void write(OutputStream outputStream) throws IOException;
+
+    void release();
 }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java Sun Dec 13 21:23:53 2015
@@ -51,6 +51,7 @@ import com.google.common.util.concurrent
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 
+import org.apache.qpid.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.configuration.updater.Task;
 import org.apache.qpid.server.message.MessageInfo;
 import org.apache.qpid.server.message.MessageInfoImpl;
@@ -2584,31 +2585,55 @@ public abstract class AbstractQueue<X ex
 
     public static class MessageContent implements Content, CustomRestHeaders
     {
-        private final byte[] _data;
-        private final String _mimeType;
 
-        public MessageContent(byte[] data, String mimeType )
+        private final MessageReference<?> _messageReference;
+
+        public MessageContent(MessageReference<?> messageReference)
         {
-            _data = data;
-            _mimeType = mimeType;
+            _messageReference = messageReference;
         }
 
         @Override
         public void write(OutputStream outputStream) throws IOException
         {
-            outputStream.write(_data);
+            Collection<QpidByteBuffer> content = _messageReference.getMessage().getContent();
+            try
+            {
+                for (QpidByteBuffer b : content)
+                {
+
+                    int len = b.remaining();
+                    byte[] data = new byte[len];
+                    b.get(data);
+                    outputStream.write(data);
+
+                }
+            }
+            finally
+            {
+                for (QpidByteBuffer b : content)
+                {
+                    b.dispose();
+                }
+            }
+        }
+
+        @Override
+        public void release()
+        {
+            _messageReference.release();
         }
 
         @RestContentHeader("Content-Type")
         public String getContentType()
         {
-            return _mimeType;
+            return _messageReference.getMessage().getMessageHeader().getMimeType();
         }
 
         @RestContentHeader("Content-Length")
         public long getSize()
         {
-            return _data.length;
+            return _messageReference.getMessage().getSize();
         }
 
     }
@@ -3336,7 +3361,7 @@ public abstract class AbstractQueue<X ex
         visit(messageFinder);
         if(messageFinder.isFound())
         {
-            return new MessageContent(messageFinder.getContent(), messageFinder.getMimeType());
+            return new MessageContent(messageFinder.getMessageReference());
         }
         else
         {
@@ -3402,10 +3427,8 @@ public abstract class AbstractQueue<X ex
     private class MessageContentFinder implements QueueEntryVisitor
     {
         private final long _messageNumber;
-        private String _mimeType;
-        private long _size;
-        private byte[] _content;
         private boolean _found;
+        private MessageReference<?> _messageReference;
 
         private MessageContentFinder(long messageNumber)
         {
@@ -3422,19 +3445,8 @@ public abstract class AbstractQueue<X ex
                 {
                     try
                     {
-                        MessageReference reference = message.newReference();
-                        try
-                        {
-                            _mimeType = message.getMessageHeader().getMimeType();
-                            _size = message.getSize();
-                            _content = new byte[(int) _size];
-                            _found = true;
-                            message.getContent(ByteBuffer.wrap(_content));
-                        }
-                        finally
-                        {
-                            reference.release();
-                        }
+                        _messageReference = message.newReference();
+                        _found = true;
                         return true;
                     }
                     catch (MessageDeletedException e)
@@ -3447,19 +3459,9 @@ public abstract class AbstractQueue<X ex
             return false;
         }
 
-        public String getMimeType()
-        {
-            return _mimeType;
-        }
-
-        public long getSize()
-        {
-            return _size;
-        }
-
-        public byte[] getContent()
+        MessageReference<?> getMessageReference()
         {
-            return _content;
+            return _messageReference;
         }
 
         public boolean isFound()

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/security/AutoGeneratedSelfSignedKeyStoreImpl.java Sun Dec 13 21:23:53 2015
@@ -494,6 +494,11 @@ public class AutoGeneratedSelfSignedKeyS
             }
         }
 
+        @Override
+        public void release()
+        {
+        }
+
         @RestContentHeader("Content-Type")
         public String getContentType()
         {
@@ -540,6 +545,11 @@ public class AutoGeneratedSelfSignedKeyS
             w.flush();
         }
 
+        @Override
+        public void release()
+        {
+        }
+
         @RestContentHeader("Content-Type")
         public String getContentType()
         {
@@ -552,6 +562,7 @@ public class AutoGeneratedSelfSignedKeyS
             return _disposition;
         }
 
+
     }
 
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/AbstractJDBCMessageStore.java Sun Dec 13 21:23:53 2015
@@ -1483,20 +1483,6 @@ public abstract class AbstractJDBCMessag
             return this;
         }
 
-        @Override
-        public synchronized int getContent(final ByteBuffer dst)
-        {
-            // These do not need to be disposed of because getContentAsByteBuffer() retains a reference
-            Collection<QpidByteBuffer> allContent = getContentAsByteBuffer();
-            int length = 0;
-            for(QpidByteBuffer contentChunk : allContent)
-            {
-                length += contentChunk.remaining();
-                contentChunk.copyTo(dst);
-            }
-            return length;
-        }
-
         /**
          * returns QBBs containing the content. The caller must not dispose of them because we keep a reference in _messageDataRef.
          */

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMemoryMessage.java Sun Dec 13 21:23:53 2015
@@ -21,7 +21,6 @@
 
 package org.apache.qpid.server.store;
 
-import java.nio.ByteBuffer;
 import java.util.Collection;
 import java.util.Collections;
 
@@ -84,25 +83,6 @@ public class StoredMemoryMessage<T exten
         return this;
     }
 
-    public int getContent(ByteBuffer dst)
-    {
-        if(_content == null)
-        {
-            return 0;
-        }
-        QpidByteBuffer src = _content.duplicate();
-
-        src.position(0);
-
-        int length = dst.remaining() < src.remaining() ? dst.remaining() : src.remaining();
-        src.limit(length);
-
-        src.get(dst);
-
-        src.dispose();
-        return length;
-    }
-
     @Override
     public Collection<QpidByteBuffer> getContent()
     {

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/store/StoredMessage.java Sun Dec 13 21:23:53 2015
@@ -31,8 +31,6 @@ public interface StoredMessage<M extends
 
     long getMessageNumber();
 
-    int getContent(ByteBuffer dst);
-
     Collection<QpidByteBuffer> getContent();
 
     void remove();

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/security/TrustStoreMessageSourceTest.java Sun Dec 13 21:23:53 2015
@@ -32,13 +32,16 @@ import java.nio.ByteBuffer;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateEncodingException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.EnumSet;
 import java.util.List;
 
 import org.mockito.ArgumentCaptor;
 
+import org.apache.qpid.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.consumer.ConsumerImpl;
 import org.apache.qpid.server.consumer.ConsumerTarget;
+import org.apache.qpid.server.message.AbstractServerMessageImpl;
 import org.apache.qpid.server.message.MessageInstance;
 import org.apache.qpid.server.message.ServerMessage;
 import org.apache.qpid.server.model.State;
@@ -93,13 +96,20 @@ public class TrustStoreMessageSourceTest
         }
     }
 
-    private List<String> getCertificatesFromMessage(final ServerMessage message) throws ClassNotFoundException
+    private List<String> getCertificatesFromMessage(final ServerMessage<?> message) throws ClassNotFoundException
     {
         final int bodySize = (int) message.getSize();
         byte[] msgContent = new byte[bodySize];
-        ByteBuffer buf = ByteBuffer.wrap(msgContent);
-        int stored = message.getContent(buf);
-        assertEquals("Unexpected message size was retrieved", bodySize, stored);
+        final Collection<QpidByteBuffer> allData = message.getStoredMessage().getContent();
+        int total = 0;
+        for(QpidByteBuffer b : allData)
+        {
+            int len = b.remaining();
+            b.get(msgContent, total, len);
+            b.dispose();
+            total += len;
+        }
+        assertEquals("Unexpected message size was retrieved", bodySize, total);
 
         List<String> certificates = new ArrayList<>();
         ByteArrayInputStream bytesIn = new ByteArrayInputStream(msgContent);

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaDataType.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaDataType.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaDataType.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/store/TestMessageMetaDataType.java Sun Dec 13 21:23:53 2015
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.server.store;
 
-import java.nio.ByteBuffer;
 import java.util.Collection;
 
 import org.apache.qpid.bytebuffer.QpidByteBuffer;
@@ -98,12 +97,6 @@ public class TestMessageMetaDataType imp
         {
             return 0;
         }
-
-        @Override
-        public int getContent(ByteBuffer buf)
-        {
-            return 0;
-        }
 
         @Override
         public Collection<QpidByteBuffer> getContent()

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/txn/MockServerMessage.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/txn/MockServerMessage.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/txn/MockServerMessage.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/txn/MockServerMessage.java Sun Dec 13 21:23:53 2015
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.server.txn;
 
-import java.nio.ByteBuffer;
 import java.util.Collection;
 
 
@@ -108,12 +107,6 @@ class MockServerMessage implements Serve
     {
         throw new UnsupportedOperationException();
     }
-
-    @Override
-    public int getContent(ByteBuffer buf)
-    {
-        throw new UnsupportedOperationException();
-    }
 
     @Override
     public Collection<QpidByteBuffer> getContent()

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_Internal_to_v0_10.java Sun Dec 13 21:23:53 2015
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.server.protocol.v0_10;
 
-import java.nio.ByteBuffer;
 import java.util.Collection;
 import java.util.Collections;
 
@@ -79,18 +78,6 @@ public class MessageConverter_Internal_t
                     }
 
                     @Override
-                    public int getContent(ByteBuffer dst)
-                    {
-                        int size = messageContent.length;
-                        if(dst.remaining() < size)
-                        {
-                            size = dst.remaining();
-                        }
-                        dst.put(messageContent, 0, size);
-                        return size;
-                    }
-
-                    @Override
                     public Collection<QpidByteBuffer> getContent()
                     {
                         return Collections.singleton(QpidByteBuffer.wrap(messageContent));

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10.java Sun Dec 13 21:23:53 2015
@@ -85,12 +85,6 @@ public class MessageConverter_v0_10 impl
                     }
 
                     @Override
-                    public int getContent(ByteBuffer dst)
-                    {
-                        return serverMsg.getContent(dst);
-                    }
-
-                    @Override
                     public Collection<QpidByteBuffer> getContent()
                     {
                         return serverMsg.getContent();

Modified: qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10_to_Internal.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10_to_Internal.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10_to_Internal.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/MessageConverter_v0_10_to_Internal.java Sun Dec 13 21:23:53 2015
@@ -29,6 +29,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.qpid.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.message.internal.InternalMessage;
 import org.apache.qpid.server.model.VirtualHost;
@@ -61,7 +62,14 @@ public class MessageConverter_v0_10_to_I
     {
         final String mimeType = serverMessage.getMessageHeader().getMimeType();
         byte[] data = new byte[(int) serverMessage.getSize()];
-        serverMessage.getContent(ByteBuffer.wrap(data));
+        int total = 0;
+        for(QpidByteBuffer b : serverMessage.getContent())
+        {
+            int len = b.remaining();
+            b.get(data, total, len);
+            b.dispose();
+            total += len;
+        }
 
         Object body = convertMessageBody(mimeType, data);
         MessageProperties messageProps = serverMessage.getHeader().getMessageProperties();

Modified: qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_Internal_to_v0_8.java Sun Dec 13 21:23:53 2015
@@ -91,18 +91,6 @@ public class MessageConverter_Internal_t
             }
 
             @Override
-            public int getContent(ByteBuffer dst)
-            {
-                int size = messageContent.length;
-                if(dst.remaining() < size)
-                {
-                    size = dst.remaining();
-                }
-                dst.put(messageContent, 0, size);
-                return size;
-            }
-
-            @Override
             public Collection<QpidByteBuffer> getContent()
             {
                 return Collections.singleton(QpidByteBuffer.wrap(messageContent));

Modified: qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_v0_8_to_Internal.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_v0_8_to_Internal.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_v0_8_to_Internal.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/MessageConverter_v0_8_to_Internal.java Sun Dec 13 21:23:53 2015
@@ -30,6 +30,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.qpid.bytebuffer.QpidByteBuffer;
 import org.apache.qpid.server.message.AMQMessageHeader;
 import org.apache.qpid.server.message.internal.InternalMessage;
 import org.apache.qpid.server.model.VirtualHost;
@@ -61,7 +62,14 @@ public class MessageConverter_v0_8_to_In
     {
         final String mimeType = serverMessage.getMessageHeader().getMimeType();
         byte[] data = new byte[(int) serverMessage.getSize()];
-        serverMessage.getContent(ByteBuffer.wrap(data));
+        int total = 0;
+        for(QpidByteBuffer b : serverMessage.getContent())
+        {
+            int len = b.remaining();
+            b.get(data, total, len);
+            b.dispose();
+            total += len;
+        }
 
         Object body = convertMessageBody(mimeType, data);
 

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_from_1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_from_1_0.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_from_1_0.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_from_1_0.java Sun Dec 13 21:23:53 2015
@@ -27,6 +27,7 @@ import java.nio.ByteBuffer;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -62,8 +63,15 @@ public class MessageConverter_from_1_0
     public static Object convertBodyToObject(final Message_1_0 serverMessage)
     {
         byte[] data = new byte[(int) serverMessage.getSize()];
-        serverMessage.getStoredMessage().getContent(ByteBuffer.wrap(data));
-
+        final Collection<QpidByteBuffer> allData = serverMessage.getStoredMessage().getContent();
+        int offset = 0;
+        for(QpidByteBuffer buf : allData)
+        {
+            int len = buf.remaining();
+            buf.get(data, offset, len);
+            offset+=len;
+            buf.dispose();
+        }
         SectionDecoderImpl sectionDecoder = new SectionDecoderImpl(MessageConverter_v1_0_to_Internal.TYPE_REGISTRY);
 
         Object bodyObject;

Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageConverter_to_1_0.java Sun Dec 13 21:23:53 2015
@@ -208,7 +208,14 @@ public abstract class MessageConverter_t
     {
         final String mimeType = serverMessage.getMessageHeader().getMimeType();
         byte[] data = new byte[(int) serverMessage.getSize()];
-        serverMessage.getContent(ByteBuffer.wrap(data));
+        int total = 0;
+        for(QpidByteBuffer b : serverMessage.getContent())
+        {
+            int len = b.remaining();
+            b.get(data, total, len);
+            b.dispose();
+            total += len;
+        }
         byte[] uncompressed;
 
         if(Symbol.valueOf(GZIPUtils.GZIP_CONTENT_ENCODING).equals(metaData.getPropertiesSection().getContentEncoding())
@@ -238,26 +245,6 @@ public abstract class MessageConverter_t
                         }
 
                         @Override
-                        public int getContent(ByteBuffer dst)
-                        {
-                            QpidByteBuffer buf = allData.duplicate();
-                            buf.position(0);
-                            int size;
-                            if (dst.remaining() < buf.remaining())
-                            {
-                                buf.limit(dst.remaining());
-                                size = dst.remaining();
-                            }
-                            else
-                            {
-                                size = buf.remaining();
-                            }
-                            buf.get(dst);
-                            buf.dispose();
-                            return size;
-                        }
-
-                        @Override
                         public Collection<QpidByteBuffer> getContent()
                         {
                             return Collections.singleton(allData.duplicate());

Modified: qpid/java/trunk/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-msg-conv-0-10-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_10_v1_0/MessageConverter_1_0_to_v0_10.java Sun Dec 13 21:23:53 2015
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.server.protocol.converter.v0_10_v1_0;
 
-import java.nio.ByteBuffer;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashMap;
@@ -90,18 +89,6 @@ public class MessageConverter_1_0_to_v0_
             }
 
             @Override
-            public int getContent(ByteBuffer dst)
-            {
-                int size = messageContent.length;
-                if(dst.remaining() < size)
-                {
-                    size = dst.remaining();
-                }
-                dst.put(messageContent, 0, size);
-                return size;
-            }
-
-            @Override
             public Collection<QpidByteBuffer> getContent()
             {
                 return Collections.singleton(QpidByteBuffer.wrap(messageContent));

Modified: qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_10_to_0_8.java Sun Dec 13 21:23:53 2015
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.server.protocol.converter.v0_8_v0_10;
 
-import java.nio.ByteBuffer;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -194,12 +193,6 @@ public class MessageConverter_0_10_to_0_
             }
 
             @Override
-            public int getContent(ByteBuffer dst)
-            {
-                return message.getContent(dst);
-            }
-
-            @Override
             public Collection<QpidByteBuffer> getContent()
             {
                 return message.getContent();

Modified: qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-0-10/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v0_10/MessageConverter_0_8_to_0_10.java Sun Dec 13 21:23:53 2015
@@ -21,7 +21,6 @@
 package org.apache.qpid.server.protocol.converter.v0_8_v0_10;
 
 import java.net.URISyntaxException;
-import java.nio.ByteBuffer;
 import java.util.Collection;
 import java.util.Map;
 import java.util.UUID;
@@ -83,12 +82,6 @@ public class MessageConverter_0_8_to_0_1
             }
 
             @Override
-            public int getContent(ByteBuffer dst)
-            {
-                return message_0_8.getContent(dst);
-            }
-
-            @Override
             public Collection<QpidByteBuffer> getContent()
             {
                 return message_0_8.getContent();

Modified: qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-msg-conv-0-8-to-1-0/src/main/java/org/apache/qpid/server/protocol/converter/v0_8_v1_0/MessageConverter_1_0_to_v0_8.java Sun Dec 13 21:23:53 2015
@@ -20,7 +20,6 @@
  */
 package org.apache.qpid.server.protocol.converter.v0_8_v1_0;
 
-import java.nio.ByteBuffer;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashMap;
@@ -92,18 +91,6 @@ public class MessageConverter_1_0_to_v0_
             }
 
             @Override
-            public int getContent(ByteBuffer dst)
-            {
-                int size = messageContent.length;
-                if(dst.remaining() < size)
-                {
-                    size = dst.remaining();
-                }
-                dst.put(messageContent, 0, size);
-                return size;
-            }
-
-            @Override
             public Collection<QpidByteBuffer> getContent()
             {
                 return Collections.singleton(QpidByteBuffer.wrap(messageContent));

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1719839&r1=1719838&r2=1719839&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java Sun Dec 13 21:23:53 2015
@@ -635,7 +635,15 @@ public class RestServlet extends Abstrac
         if(returnVal instanceof Content)
         {
             Content content = (Content)returnVal;
-            writeTypedContent(content, request, response);
+            try
+            {
+
+                writeTypedContent(content, request, response);
+            }
+            finally
+            {
+                content.release();
+            }
         }
         else
         {




---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org