HBASE-12845 - ByteBufferOutputStream should grow as direct buffer if the

initial buffer is also direct BB (Ram)
This commit is contained in:
Ramkrishna 2015-01-15 12:58:22 +05:30
parent 1c45263cf4
commit 71184309e1
1 changed files with 6 additions and 2 deletions

View File

@ -70,8 +70,12 @@ public class ByteBufferOutputStream extends OutputStream {
int newSize = (int)Math.min((((long)buf.capacity()) * 2),
(long)(Integer.MAX_VALUE));
newSize = Math.max(newSize, buf.position() + extra);
ByteBuffer newBuf = ByteBuffer.allocate(newSize);
ByteBuffer newBuf = null;
if (buf.isDirect()) {
newBuf = ByteBuffer.allocateDirect(newSize);
} else {
newBuf = ByteBuffer.allocate(newSize);
}
buf.flip();
newBuf.put(buf);
buf = newBuf;