diff --git a/src/main/java/org/jboss/netty/channel/socket/nio/SocketReceiveBufferAllocator.java b/src/main/java/org/jboss/netty/channel/socket/nio/SocketReceiveBufferAllocator.java index 5e6041d2a1..684f605cf2 100644 --- a/src/main/java/org/jboss/netty/channel/socket/nio/SocketReceiveBufferAllocator.java +++ b/src/main/java/org/jboss/netty/channel/socket/nio/SocketReceiveBufferAllocator.java @@ -38,12 +38,12 @@ final class SocketReceiveBufferAllocator { ByteBuffer get(int size) { if (buf == null) { - buf = newBuffer(size); + return newBuffer(size); } else if (buf.capacity() < size) { - buf = newBuffer(size); + return newBuffer(size); } else if (((buf.capacity() / 100) * percentual) > size) { if (++exceedCount == maxExceedCount) { - buf = newBuffer(size); + return newBuffer(size); } else { buf.clear(); } @@ -59,7 +59,8 @@ final class SocketReceiveBufferAllocator { exceedCount = 0; ByteBufferUtil.destroy(buf); } - return ByteBuffer.allocateDirect(normalizeCapacity(size)); + buf = ByteBuffer.allocateDirect(normalizeCapacity(size)); + return buf; } private static int normalizeCapacity(int capacity) {