QPID-7465: [Java Broker] Stop ServerEncoder from unnecessarily allocating ByteBuffers
diff --git a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerEncoder.java b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerEncoder.java
index a37cb29..bd42b3f 100644
--- a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerEncoder.java
+++ b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerEncoder.java
@@ -49,18 +49,15 @@
 
     public void init()
     {
-        _out.position(_out.limit());
-        _out.limit(_out.capacity());
-        QpidByteBuffer old = _out;
-        if(_out.remaining() < _threshold)
+        if(_out.capacity() < _threshold)
         {
+            _out.dispose();
             _out = QpidByteBuffer.allocateDirect(_initialCapacity);
         }
         else
         {
-            _out = _out.slice();
+            _out.clear();
         }
-        old.dispose();
     }
 
     public QpidByteBuffer getBuffer()