You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2015/10/04 18:17:23 UTC
svn commit: r1706695 -
/qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentBody.java
Author: kwall
Date: Sun Oct 4 16:17:23 2015
New Revision: 1706695
URL: http://svn.apache.org/viewvc?rev=1706695&view=rev
Log:
QPID-6768: Avoid unnecessary message payload copy during publish (0-8...0-91)
Modified:
qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentBody.java
Modified: qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentBody.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentBody.java?rev=1706695&r1=1706694&r2=1706695&view=diff
==============================================================================
--- qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentBody.java (original)
+++ qpid/java/trunk/common/src/main/java/org/apache/qpid/framing/ContentBody.java Sun Oct 4 16:17:23 2015
@@ -60,9 +60,20 @@ public class ContentBody implements AMQB
public void writePayload(DataOutput buffer) throws IOException
{
- byte[] data = new byte[_payload.remaining()];
- _payload.copyTo(data);
- buffer.write(data);
+ if (_payload.hasArray())
+ {
+ int start = _payload.arrayOffset() + _payload.position();
+ buffer.write(_payload.array(),
+ start,
+ _payload.remaining());
+ _payload.position(_payload.position() + _payload.remaining());
+ }
+ else
+ {
+ byte[] data = new byte[_payload.remaining()];
+ _payload.copyTo(data);
+ buffer.write(data);
+ }
}
public void handle(final int channelId, final AMQVersionAwareProtocolSession session)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org