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-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org