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() );
     }