Thanks Jody - I was able to get this update and confirm that it works.

On 8/28/2012 9:04 PM, Jody Garnett wrote:
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