> 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