> If you comment out the first try/catch section of that function (which 
> is supposed to "optimize" the code), the performance improves.
> 
> 

I added a check so the "optimisation" is only attempted for non "udig" code.
>             String resolveType=child.getAttribute("type"); //$NON-NLS-1$
>             if( !resolveType.startsWith("net.refractions") && 
> !resolveType.startsWith("eu.udig") ){
>                 // We first try a class loader trick to grab the target class
>                 // without forcing the load of the plugin where the element
>                 // comes from (this works in may cases where the type is 
> something
>                 // common from net.refractions.udig.libs)
>                 try{
>                     ClassLoader classLoader = target.getClassLoader();
>                     if( classLoader==null ){
>                         classLoader=ClassLoader.getSystemClassLoader();
>                     }
>                     Class< ? > resolvedClass = 
> classLoader.loadClass(resolveType);
>                     
>                     if( target.isAssignableFrom(resolvedClass) ){
>                         return true;
>                     }
>                     else {                 
>                     continue; // we were able to load the class and it did 
> not match
>                     }
>                 } catch(ClassNotFoundException e2){
>                     // that is no good, let's try using the RCP classloader
>                 }
>             }
> 



It has restored performance. I will continue on with the more detailed 
solution; but for now we are in position to release again.

Jody
 

_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel

Reply via email to