THRIFT-1457 java: Capacity of TframedTransport write buffer is never reset
Patch: Arthur Meyer
diff --git a/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java b/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java
index 9ed83c0..1c37ecd 100644
--- a/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java
+++ b/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java
@@ -27,18 +27,29 @@
*
*/
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;
}