[rules-users] ShadowProxy & PersistentSet

vdelbart delbart.v at mipih.fr
Mon Apr 28 09:59:07 EDT 2008


I create a JIRA : http://jira.jboss.com/jira/browse/JBRULES-1590

it's to complicate to me to create an unit test with a hibernate session.

thanks,

V.


Mark Proctor wrote:
> 
> Can you open a JIRA for this? If you provide a unit test with it, we'll 
> see if we can include this in 4.0.7. 5.0 will now have shadow proxies 
> any more, as default.
> 
> Mark
> vdelbart wrote:
>> 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.
>>
>>   
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 

-- 
View this message in context: http://www.nabble.com/ShadowProxy---PersistentSet-tp16824934p16939583.html
Sent from the drools - user mailing list archive at Nabble.com.




More information about the rules-users mailing list