@Override
    protected NativeObject clone() {
        try {
            NativeObject obj = (NativeObject) super.clone();
            obj.handleRef = new Object();
            obj.objectManager = null;
            obj.id = INVALID_ID;
            obj.updateNeeded = true;
            return obj;
        } catch (CloneNotSupportedException ex) {
            throw new AssertionError();
        }
    }
This should create a deep clone. For a shallow clone, use
createDestructableClone().
jme3-core/src/main/java/com/jme3/util/NativeObject.java