felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karl Pauls (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (FELIX-842) Linkage-Error when embedding Felix inside Tomcat 6
Date Fri, 19 Dec 2008 22:10:44 GMT

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

Karl Pauls resolved FELIX-842.
------------------------------

    Resolution: Fixed

The WebAppClassloader is creating urls during a classload while we are creating url handlers
which gets us into a recursive attempt to create a handler resulting in the error. I addressed
this in trunk by creating a couple of known built-in handlers up front (i.e., http, https,
ftp, jar, file) which we can fallback to in case we get a Linkage-Error while trying to create
the handler. Furthermore, a couple of classes are forced to be loaded eagerly. 

Thanks again for reporting. This will make it into the upcoming 1.4.1 release. Please close
this issue if it works for you.

> Linkage-Error when embedding Felix inside Tomcat 6
> --------------------------------------------------
>
>                 Key: FELIX-842
>                 URL: https://issues.apache.org/jira/browse/FELIX-842
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.4.0
>         Environment: Windows XP SP3, Java 1.5.0, Tomcat 6.0
>            Reporter: Daniel Bremer-Tonn
>            Assignee: Karl Pauls
>             Fix For: felix-1.4.1
>
>
> When embedding Felix in Tomcat I get the following Exception on Felix-Startup:
> ERROR: Unable to start system bundle. (java.lang.LinkageError: org/osgi/service/url/URLStreamHandlerService)
> java.lang.LinkageError: org/osgi/service/url/URLStreamHandlerService
>    at java.lang.Class.forName0(Native Method)
>    at java.lang.Class.forName(Class.java:164)
>    at org.apache.felix.framework.URLHandlersStreamHandlerProxy.class$(URLHandlersStreamHandlerProxy.java:77)
>    at org.apache.felix.framework.URLHandlersStreamHandlerProxy.getStreamHandlerService(URLHandlersStreamHandlerProxy.java:391)
>    at org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:267)
>    at java.net.URL.<init>(URL.java:596)
>    at java.net.URL.<init>(URL.java:464)
>    at java.net.URL.<init>(URL.java:413)
>    at java.net.URI.toURL(URI.java:1081)
>    at org.apache.catalina.loader.WebappClassLoader.getURI(WebappClassLoader.java:2355)
>    at org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2008)
>    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1786)
>    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
>    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
>    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
>    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>    at java.lang.Class.forName0(Native Method)
>    at java.lang.Class.forName(Class.java:164)
>    at org.apache.felix.framework.URLHandlersStreamHandlerProxy.class$(URLHandlersStreamHandlerProxy.java:77)
>    at org.apache.felix.framework.URLHandlersStreamHandlerProxy.getStreamHandlerService(URLHandlersStreamHandlerProxy.java:391)
>    at org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:267)
>    at java.net.URL.<init>(URL.java:596)
>    at java.net.URL.<init>(URL.java:464)
>    at java.net.URL.<init>(URL.java:413)
>    at java.net.URI.toURL(URI.java:1081)
>    at org.apache.catalina.loader.WebappClassLoader.getURI(WebappClassLoader.java:2355)
>    at org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2008)
>    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1786)
>    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
>    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
>    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
>    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>    at org.apache.felix.framework.Felix.registerService(Felix.java:2694)
>    at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:252)
>    at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:230)
>    at org.apache.felix.framework.StartLevelActivator.start(StartLevelActivator.java:39)
>    at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)
>    at org.apache.felix.framework.Felix$SystemBundleActivator.start(Felix.java:3761)
>    at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)
>    at org.apache.felix.framework.Felix.init(Felix.java:849)
>    at org.apache.felix.framework.Felix.start(Felix.java:881)
>    at ... osgi.FelixStartupServlet.init(FelixStartupServlet.java:118)
>    at javax.servlet.GenericServlet.init(GenericServlet.java:212)
>    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
>    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
>    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
>    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
>    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
>    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>    at java.lang.reflect.Method.invoke(Method.java:585)
>    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) 

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