Can we maybe change the variable name to something else, e.g.
unknownResources? Calling it "knownResources" for resources that are
not found is a little confusing.

Jarek

On Wed, Jan 7, 2009 at 3:56 PM,  <[email protected]> wrote:
> Author: mcconne
> Date: Wed Jan  7 12:56:39 2009
> New Revision: 732486
>
> URL: http://svn.apache.org/viewvc?rev=732486&view=rev
> Log:
> GERONIMO-4497 Change to prevent repetitive searches for the same (not found) 
> resource
>
> Modified:
>    
> geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
>
> Modified: 
> geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
> URL: 
> http://svn.apache.org/viewvc/geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java?rev=732486&r1=732485&r2=732486&view=diff
> ==============================================================================
> --- 
> geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
>  (original)
> +++ 
> geronimo/server/trunk/framework/modules/geronimo-kernel/src/main/java/org/apache/geronimo/kernel/config/MultiParentClassLoader.java
>  Wed Jan  7 12:56:39 2009
> @@ -60,6 +60,7 @@
>     private final ClassLoader[] parents;
>     private final ClassLoadingRules classLoadingRules;
>     private boolean destroyed = false;
> +    private Set<String> knownResources = new HashSet<String>();
>
>     // I used this pattern as its temporary and with the static final we get 
> compile time
>     // optimizations.
> @@ -514,7 +515,7 @@
>     }
>
>     public URL getResource(String name) {
> -        if (isDestroyed()) {
> +        if (isDestroyed() || knownResources.contains(name)) {
>             return null;
>         }
>
> @@ -548,7 +549,17 @@
>         // resource, so we can override now
>         if (!isDestroyed()) {
>             // parents didn't have the resource; attempt to load it from my 
> urls
> -            return findResource(name);
> +            URL url = findResource(name);
> +            if (url != null) {
> +                return url;
> +            }
> +        }
> +
> +        //
> +        // Resource not found -- no need to search for it again
> +        //
> +        if (!knownResources.contains(name)) {
> +            knownResources.add(name);
>         }
>
>         return null;
>
>
>

Reply via email to