private static ByteBuffer clearAndEnsureCapacity(ByteBuffer buffer, final int elements){
        if(buffer == null || buffer.capacity() < elements)
            buffer = ByteBuffer.allocate(elements);
        else
            buffer.clear();