PROTON-1672 Fix issue when PN_TRACE_FRM is enabled

During tracing if frame is larger than max frame size an
IndexOutOfBoundsException is thrown if buffer slicing not done properly.
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeReadableBuffer.java b/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeReadableBuffer.java
index fee963a..388d140 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeReadableBuffer.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/codec/CompositeReadableBuffer.java
@@ -723,6 +723,21 @@
         return true;
     }
 
+    @Override
+    public String toString() {
+        StringBuffer builder = new StringBuffer();
+        builder.append("CompositeReadableBuffer");
+        builder.append("{ pos=");
+        builder.append(position());
+        builder.append(" limit=");
+        builder.append(limit());
+        builder.append(" capacity=");
+        builder.append(capacity());
+        builder.append(" }");
+
+        return builder.toString();
+    }
+
     private static boolean equals(byte x, byte y) {
         return x == y;
     }
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java
index abf4ba9..bfda8ab 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/FrameWriter.java
@@ -193,8 +193,8 @@
             ReadableBuffer originalPayload = null;
             if (payload!=null)
             {
-                originalPayload = payload.duplicate();
-                originalPayload.limit(payload.position() + payloadSize);
+                originalPayload = payload.slice();
+                originalPayload.limit(payloadSize);
             }
 
             Binary payloadBin = Binary.create(originalPayload);