Bug 477062: short-circuit looking up resources with fixed names from system loader
diff --git a/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/ResourceEnumeration.java b/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/ResourceEnumeration.java
index b1ad26b..ec143b8 100644
--- a/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/ResourceEnumeration.java
+++ b/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/ResourceEnumeration.java
@@ -141,7 +141,7 @@
* @param path The path to normalize
* @return Normalized search path
*/
- private static String normalizeSearchPath( final String path )
+ static String normalizeSearchPath( final String path )
{
if ( null == path || "/".equals( path ) )
{
diff --git a/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/URLClassSpace.java b/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/URLClassSpace.java
index 11e6655..4b3b8a1 100644
--- a/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/URLClassSpace.java
+++ b/org.eclipse.sisu.inject/src/org/eclipse/sisu/space/URLClassSpace.java
@@ -173,6 +173,14 @@
public final Enumeration<URL> findEntries( final String path, final String glob, final boolean recurse )
{
+ if ( null != SYSTEM_LOADER && loader == SYSTEM_LOADER )
+ {
+ // short-circuit looking up fixed names from system loader
+ if ( !recurse && null != glob && glob.indexOf( '*' ) < 0 )
+ {
+ return getResources( ResourceEnumeration.normalizeSearchPath( path ) + glob );
+ }
+ }
return new ResourceEnumeration( path, glob, recurse, getClassPath() );
}