I think the method cloneObject 'ShadowProxyUtils' could be improve like follow :
public static Object cloneObject(Object original) { Object clone = null; if ( original instanceof Cloneable ) { try { Method cloneMethod = original.getClass().getMethod( "clone", new Class[0] ); clone = cloneMethod.invoke( original, new Object[0] ); } catch ( Exception e ) { /* Failed to clone. Don't worry about it, and just return * the original object. */ clone = null; } } if ( clone == null ) { try { if ( original instanceof Map && original != Collections.EMPTY_MAP && !UNMODIFIABLE_MAP.isAssignableFrom( original.getClass() ) ) { /* empty and unmodifiable maps can't (and don't need to) be shadowed */ clone = original.getClass().newInstance(); ((Map) clone).putAll( (Map) original ); } else if ( original instanceof Collection && original != Collections.EMPTY_LIST && original != Collections.EMPTY_SET && !UNMODIFIABLE_COLLECTION.isAssignableFrom( original.getClass() ) ) { /* empty and unmodifiable collections can't (and don't need to) be shadowed */ clone = original.getClass().newInstance(); ((Collection) clone).addAll( (Collection) original ); } else if ( original.getClass().isArray() ) { clone = cloneArray( original ); } } catch ( Exception e ) { /* Failed to clone. Don't worry about it, and just return * the original object. */ clone = null; } } if ( clone == null ) { clone = original; } return clone; } In this way my PersistentSet will be not clone and I will be able to continue to use shadow fact What do you think about ? V. -- View this message in context: http://www.nabble.com/ShadowProxy---PersistentSet-tp16824934p16833560.html Sent from the drools - user mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users