IllegalArgumentException when trying to load classnames with a parenthesis
--------------------------------------------------------------------------

                 Key: FELIX-2762
                 URL: https://issues.apache.org/jira/browse/FELIX-2762
             Project: Felix
          Issue Type: Bug
            Reporter: Michael Petritsch


When a bundle is trying to load a class with a classname that contains a 
perenthesis felix is throwing an IllegalArgumentException. Now usually the 
bundle trying to load the class would catch a "ClassNotFoundException". Other 
classLoaders (or at least sun.misc.Launcher.AppClassLoader) are throwing a 
ClassNotFoundException if the classname contains a parenthesis.
Even if it's illegal to have parentheses in classnames some bundles still might 
try to load such classnames (e.g. due to a bug). So they could stop working in 
felix if they are catching a ClassNotFoundException even though they worked 
well before with different classloaders.

Here is the stacktrace caused by a bundle that fits the category mentioned 
above:
java.lang.IllegalArgumentException: Illegal value: Document doc =
element.getOwnerDocument();
    at 
org.apache.felix.framework.capabilityset.SimpleFilter.parseSubstring(SimpleFilter.java:399)
    at 
org.apache.felix.framework.util.manifestparser.RequirementImpl.convertToFilter(RequirementImpl.java:162)
    at 
org.apache.felix.framework.util.manifestparser.RequirementImpl.<init>(RequirementImpl.java:49)
    at 
org.apache.felix.framework.Felix$FelixResolver.isAllowedDynamicImport(Felix.java:4139)
    at org.apache.felix.framework.Felix$FelixResolver.resolve(Felix.java:4029)
    at 
org.apache.felix.framework.ModuleImpl.searchDynamicImports(ModuleImpl.java:1367)
    at 
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:723)
    at org.apache.felix.framework.ModuleImpl.access$200(ModuleImpl.java:73)
    at 
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1690)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at 
org.apache.felix.framework.ModuleImpl.getClassByDelegation(ModuleImpl.java:634)
    at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1594)
    at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:887)
    at 
org.ops4j.pax.swissbox.core.BundleClassLoader.findClass(BundleClassLoader.java:176)
    at 
org.ops4j.pax.swissbox.core.BundleClassLoader.loadClass(BundleClassLoader.java:194)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    at org.milyn.util.ClassUtil.forName(ClassUtil.java:82)

-- 
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