Always reset direct buffer when reused.

This commit is contained in:
Gary Russell
2010-04-17 16:45:50 +00:00
parent 6ceec19ef3
commit 4713091555

View File

@@ -102,6 +102,7 @@ public class NioSocketWriter extends AbstractSocketWriter {
protected ByteBuffer getBuffer() throws InterruptedException {
ByteBuffer buffer = this.buffers.poll();
if (buffer != null) {
buffer.clear();
return buffer;
}
synchronized (buffers) {
@@ -109,11 +110,6 @@ public class NioSocketWriter extends AbstractSocketWriter {
bufferCount++;
return ByteBuffer.allocateDirect(this.sendBufferSize);
}
// another thread may have returned one while we were sync'd
buffer = this.buffers.poll();
if (buffer != null) {
return buffer;
}
}
buffer = this.buffers.take();
buffer.clear();