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