private ByteBuffer getBuffer() {
        if ((this.last != null) && (this.last.hasRemaining())) {
            return this.last;
        }

        ByteBuffer result = this.factory.getByteBuffer();
        this.buffers.add(result);
        if (this.last != null) {
            this.last.flip();
        }

        this.last = result;

        return result;
    }