felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard S. Hall (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (FELIX-808) The method R4SearchPolicyCore.searchDynamicImports( IModule module, String name, String pkgName, boolean isClass) always load a class by using the current thrad class loader even if the object to load is a resource.
Date Sat, 08 Nov 2008 16:26:44 GMT

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

Richard S. Hall resolved FELIX-808.
-----------------------------------

    Resolution: Fixed

I committed a fix for this in the trunk. If you can build the trunk and test it, that would
be great, then you could close this issue for us. I wonder how you found this bug, since it
is definitely not something you should run into too much...it is completely non-spec behavior.
:-)

> The method R4SearchPolicyCore.searchDynamicImports(         IModule module, String name,
String pkgName, boolean isClass) always load a class by using the current thrad class loader
even if  the object to load is a resource.
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FELIX-808
>                 URL: https://issues.apache.org/jira/browse/FELIX-808
>             Project: Felix
>          Issue Type: Bug
>    Affects Versions: felix-1.4.0
>            Reporter: eyindanga
>
> The method R4SearchPolicyCore.searchDynamicImports( IModule module, String name, String
pkgName, boolean isClass) always load a class by using the current thrad class loader even
if  the object to laod is a resource.
> This code may chek if the object is a class or a resource, and invoke the coresponding
method on the classloader.
>                // If there are no bundles providing exports for this
>                 // package and if the instigating class was not from a
>                 // bundle, then delegate to the parent class loader.
>                 // Otherwise, break out of loop and return null.
>                 boolean delegate = true;
>                 for (ClassLoader cl = classes[i].getClassLoader(); cl != null; cl = cl.getClass().getClassLoader())
>                 {
>                     if (ContentClassLoader.class.isInstance(cl))
>                     {
>                         delegate = false;
>                         break;
>                     }
>                 }
>                 if (delegate)
>                 {
>                     return this.getClass().getClassLoader().loadClass(name);
>                 }

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


Mime
View raw message