You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ke...@apache.org on 2007/08/02 16:05:48 UTC

svn commit: r562112 - /geronimo/server/branches/2.0/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java

Author: kevan
Date: Thu Aug  2 07:05:47 2007
New Revision: 562112

URL: http://svn.apache.org/viewvc?view=rev&rev=562112
Log:
GERONIMO-3369 Check for hidden resources before checking parent ClassLoaders

Modified:
    geronimo/server/branches/2.0/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java

Modified: geronimo/server/branches/2.0/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.0/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java?view=diff&rev=562112&r1=562111&r2=562112
==============================================================================
--- geronimo/server/branches/2.0/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java (original)
+++ geronimo/server/branches/2.0/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java Thu Aug  2 07:05:47 2007
@@ -586,51 +586,6 @@
         recursiveFind(knownClassloaders, enumerations, name);
 
         return new UnionEnumeration<URL>(enumerations);
-        /*
-             List<URL> resources = new ArrayList<URL>();
-             Set<URL> found = new HashSet<URL>();
-
-             //
-             // if we are using inverse class loading, add the resources from local urls first
-             //
-             if (inverseClassLoading && !isDestroyed()) {
-                 for (Enumeration myResources = super.findResources(name); myResources.hasMoreElements();) {
-                     URL url = (URL) myResources.nextElement();
-                     if (!found.contains(url)) {
-                         found.add(url);
-                         resources.add(url);
-                     }
-                 }
-             }
-
-             //
-             // Add parent resources
-             //
-             for (ClassLoader parent : parents) {
-                 for (Enumeration parentResources = parent.getResources(name); parentResources.hasMoreElements();) {
-                     URL url = (URL) parentResources.nextElement();
-                     if (!found.contains(url)) {
-                         found.add(url);
-                         resources.add(url);
-                     }
-                 }
-             }
-
-             //
-             // if we are not using inverse class loading, add the resources from local urls now
-             //
-             if (!inverseClassLoading && !isDestroyed()) {
-                 for (Enumeration myResources = super.findResources(name); myResources.hasMoreElements();) {
-                     URL url = (URL) myResources.nextElement();
-                     if (!found.contains(url)) {
-                         found.add(url);
-                         resources.add(url);
-                     }
-                 }
-             }
-
-             return Collections.enumeration(resources);
-        */
     }
 
     protected void recursiveFind(Set<ClassLoader> knownClassloaders, List<Enumeration<URL>> enumerations, String name) throws IOException {
@@ -638,16 +593,18 @@
             return;
         }
         knownClassloaders.add(this);
-        if (inverseClassLoading) {
+        if (inverseClassLoading && !isNonOverridableResource(name)) {
             enumerations.add(internalfindResources(name));
         }
-        for (ClassLoader parent : parents) {
-            if (parent instanceof MultiParentClassLoader) {
-                ((MultiParentClassLoader) parent).recursiveFind(knownClassloaders, enumerations, name);
-            } else {
-                if (!knownClassloaders.contains(parent)) {
-                    enumerations.add(parent.getResources(name));
-                    knownClassloaders.add(parent);
+        if (!isHiddenResource(name)) {
+            for (ClassLoader parent : parents) {
+                if (parent instanceof MultiParentClassLoader) {
+                    ((MultiParentClassLoader) parent).recursiveFind(knownClassloaders, enumerations, name);
+                } else {
+                    if (!knownClassloaders.contains(parent)) {
+                        enumerations.add(parent.getResources(name));
+                        knownClassloaders.add(parent);
+                    }
                 }
             }
         }