Author: musachy Date: Fri Apr 17 18:03:05 2009 New Revision: 766104 URL: http://svn.apache.org/viewvc?rev=766104&view=rev Log: WW-308 PackageBasedActionConfigBuilder.buildUrlSet() does not find actions when ReloadingClassLoader is used
Patch from Lukasz Racon Modified: struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java Modified: struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java URL: http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java?rev=766104&r1=766103&r2=766104&view=diff ============================================================================== --- struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java (original) +++ struts/struts2/trunk/plugins/convention/src/main/java/org/apache/struts2/convention/PackageBasedActionConfigBuilder.java Fri Apr 17 18:03:05 2009 @@ -357,8 +357,14 @@ UrlSet urlSet = new UrlSet(classLoaderInterface); //exclude parent of classloaders - if (classLoaderInterface.getParent() != null) - urlSet = urlSet.exclude(classLoaderInterface.getParent()); + ClassLoaderInterface parent = classLoaderInterface.getParent(); + //if reload is enabled, we need to step up one level, otherwise the UrlSet will be empty + //this happens because the parent of the realoding class loader is the web app classloader + if (parent != null && isReloadEnabled()) + parent = parent.getParent(); + + if (parent != null) + urlSet = urlSet.exclude(parent); urlSet = urlSet.exclude(new ClassLoaderInterfaceDelegate(ClassLoader.getSystemClassLoader().getParent())); urlSet = urlSet.excludeJavaExtDirs();