THRIFT-1457 java: Capacity of TframedTransport write buffer is never reset
authorRoger Meier <roger@apache.org>
Thu, 6 Feb 2014 22:41:37 +0000 (23:41 +0100)
committerRoger Meier <roger@apache.org>
Thu, 6 Feb 2014 22:41:37 +0000 (23:41 +0100)
Patch: Arthur Meyer

lib/java/src/org/apache/thrift/TByteArrayOutputStream.java

index 9ed83c0..1c37ecd 100644 (file)
@@ -27,18 +27,29 @@ import java.io.ByteArrayOutputStream;
  *
  */
 public class TByteArrayOutputStream extends ByteArrayOutputStream {
+
+  private final int initialSize;
+
   public TByteArrayOutputStream(int size) {
     super(size);
+    this.initialSize = size;
   }
 
   public TByteArrayOutputStream() {
-    super();
+    this(32);
   }
 
   public byte[] get() {
     return buf;
   }
 
+  public void reset() {
+    super.reset();
+    if (buf.length > initialSize) {
+      buf = new byte[initialSize];
+    }
+  }
+
   public int len() {
     return count;
   }