You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Richard S. Hall (JIRA)" <ji...@apache.org> on 2013/02/28 19:43:13 UTC

[jira] [Resolved] (FELIX-3939) IllegalArgumentException from ClassLoader.definePackage

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

Richard S. Hall resolved FELIX-3939.
------------------------------------

    Resolution: Fixed

I've committed a patch and will deploy snapshots. I didn't bother logging, since allowing the IAE is just an implementation detail of the framework (i.e., we could just as easily introduced a lock to avoid it, which Equinox did, I believe), so I don't see the point in having it end up in a log file.

If it works for you, please close this issue. Thanks.
                
> IllegalArgumentException from ClassLoader.definePackage
> -------------------------------------------------------
>
>                 Key: FELIX-3939
>                 URL: https://issues.apache.org/jira/browse/FELIX-3939
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: framework-4.2.0
>         Environment: JDK 1.7
>            Reporter: Sahoo
>            Priority: Blocker
>             Fix For: framework-4.4.0
>
>
> Could parallel class loading feature implementation be the reason behind a recent regression that we are seeing in GlassFish as reported in [1]? The exception stack is like this:
> Caused by: java.lang.IllegalArgumentException: com.sun.xml.ws.transport.http.servlet
> at java.lang.ClassLoader.definePackage(ClassLoader.java:1601)
> at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2190)
> at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1472)
> at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
> at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1923)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1357)
> at org.apache.felix.framework.BundleWiringImpl.searchDynamicImports(BundleWiringImpl.java:1598)
> at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1479)
> at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
> at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1923)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1832)
> at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:937)
> at org.jvnet.hk2.osgiadapter.OSGiModuleImpl$4$1.run(OSGiModuleImpl.java:434)
> at org.jvnet.hk2.osgiadapter.OSGiModuleImpl$4$1.run(OSGiModuleImpl.java:431)
> at java.security.AccessController.doPrivileged(Native Method)
> at org.jvnet.hk2.osgiadapter.OSGiModuleImpl$4.loadClass(OSGiModuleImpl.java:431)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> at com.sun.enterprise.v3.server.APIClassLoaderServiceImpl$APIClassLoader.loadClass(APIClassLoaderServiceImpl.java:238)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:410)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
> at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1579)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:264)
> at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:363)
> at java.util.ServiceLoader$1.next(ServiceLoader.java:445)
> at org.glassfish.web.loader.ServletContainerInitializerUtil.getInterestList(ServletContainerInitializerUtil.java:193)
> at org.apache.catalina.core.StandardContext.callServletContainerInitializers(StandardContext.java:5955)
> at com.sun.enterprise.web.WebModule.callServletContainerInitializers(WebModule.java:779)
> at org.apache.catalina.core.StandardContext.start(StandardContext.java:5888)
> IllegalArgumentException is thrown by ClassLoader.definePackage if package already exists as per javadoc of that method.
> [1] http://java.net/jira/browse/GLASSFISH-19712

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira