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