Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
framework-4.2.0
-
None
-
JDK 1.7
Description
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.