[ 
https://issues.apache.org/jira/browse/GERONIMO-4497?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tim McConnell resolved GERONIMO-4497.
-------------------------------------

    Resolution: Fixed

Changed MultiParentClassLoader to use a HashSet to maintain of list of those 
resources which have already been searched for, but not found, and thus 
preventing multiple searches for the same "not found" resources. This 
dramatically improves the performance when "not found" resources are searched 
for multiple times (e.g., by the BIRT reporting engine) especially when many 
parent classloaders are involved, and would otherwise have to be searched 
again. 

> Searching for resources in MultiParentClassLoader is not fully optimized
> ------------------------------------------------------------------------
>
>                 Key: GERONIMO-4497
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-4497
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: kernel
>    Affects Versions: 2.1.4, 2.2
>            Reporter: Tim McConnell
>            Assignee: Tim McConnell
>             Fix For: 2.1.4, 2.2
>
>
> In one failing scenario, the BIRT reporting engine is invoked with an XML 
> data file to generate a PDF report file. MultiParentClassLoader.getResource() 
> is invoked many times to search for various XML resources (e.g., 
> DocumentBuilderFactory). MultiParentClassLoader searches through the current 
> classloader and all the parent classloaders, which it should, but this can 
> take a considerable amount of time if the resource is never found. It seems 
> that once a resource has been searched for and not found, there is no need to 
> search for it again in the same classloader hierarchy. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to