@Override
    public VertexBuffer clone() {
        // NOTE: Superclass GLObject automatically creates shallow clone
        // e.g. re-use ID.
        VertexBuffer vb = (VertexBuffer) super.clone();
        vb.handleRef = new Object();
        vb.id = -1;
        if (data != null) {
            // Make sure to pass a read-only buffer to clone so that
            // the position information doesn't get clobbered by another
            // reading thread during cloning (and vice versa) since this is
            // a purely read-only operation.
            vb.updateData(BufferUtils.clone(getDataReadOnly()));
        }

        return vb;
    }
Creates a deep clone of the {@link VertexBuffer}.

@return Deep clone of this buffer
jme3-core/src/main/java/com/jme3/scene/VertexBuffer.java