geronimo.kernel.classloader.JarFileUrlStreamHandler fails with Trinidad -----------------------------------------------------------------------
Key: GERONIMO-2305 URL: http://issues.apache.org/jira/browse/GERONIMO-2305 Project: Geronimo Issue Type: Bug Security Level: public (Regular issues) Components: kernel Affects Versions: 1.1 Environment: Geronimo-jetty-1.1 running in Java 1.5.0_06 on Mac OS X or Java 1.5.0_06 on XP Aug. 6 Trinidad snapshot - http://people.apache.org/maven-snapshot-repository/org/apache/myfaces/trinidad/ Reporter: Chris Herborth Priority: Blocker Web application (built with current MyFaces and Trinidad) crashes during page loading with this stack trace: 7-Aug-2006 10:40:40 AM org.apache.myfaces.adfinternal.agent.CapabilitiesProvider getCapabilities SEVERE: could not get capabilities from capabilities document java.lang.IllegalArgumentException: Expected url [jar:file:/C:/Documents and Settings/chrish/Desktop/geronimo-1.1/repository/default/devsignup/1154961598406/devsignup-1154961598406.war/WEB-INF/lib/adf-faces-impl-incubator-m1-SNAPSHOT.jar!/META-INF/agent/capabilities.xml], but was [jar:file:/C:/Documents and Settings/chrish/Desktop/geronimo-1.1/repository/default/devsignup/1154961598406/devsignup-1154961598406.war/WEB-INF/lib/adf-faces-impl-incubator-m1-SNAPSHOT.jar!/META-INF/agent/htmlBasic.xml] at org.apache.geronimo.kernel.classloader.JarFileUrlStreamHandler.openConnection(JarFileUrlStreamHandler.java:63) at java.net.URL.openConnection(Unknown Source) at org.apache.myfaces.adfinternal.agent.parse.CapabilityDataDocumentParser.parse(CapabilityDataDocumentParser.java:60) at org.apache.myfaces.adfinternal.agent.parse.CapabilitiesDocument._getCapabilities(CapabilitiesDocument.java:315) at org.apache.myfaces.adfinternal.agent.parse.CapabilitiesDocument._getCapabilities(CapabilitiesDocument.java:226) at org.apache.myfaces.adfinternal.agent.parse.CapabilitiesDocument._getCapabilities(CapabilitiesDocument.java:293) at org.apache.myfaces.adfinternal.agent.parse.CapabilitiesDocument._getCapabilities(CapabilitiesDocument.java:212) at org.apache.myfaces.adfinternal.agent.parse.CapabilitiesDocument._getDefaultAgentCapabilities(CapabilitiesDocument.java:117) at org.apache.myfaces.adfinternal.agent.parse.CapabilitiesDocument.<init>(CapabilitiesDocument.java:38) at org.apache.myfaces.adfinternal.agent.parse.CapabilitiesDocumentParser.endElement(CapabilitiesDocumentParser.java:184) at org.apache.myfaces.adfinternal.share.xml.TreeBuilder$Handler.endElement(TreeBuilder.java:463) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.myfaces.adfinternal.share.xml.TreeBuilder.parse(TreeBuilder.java:166) at org.apache.myfaces.adfinternal.agent.parse.CapabilitiesDocumentParser.createInstance(CapabilitiesDocumentParser.java:67) at org.apache.myfaces.adfinternal.agent.CapabilitiesProvider._getCapabilityDocument(CapabilitiesProvider.java:128) at org.apache.myfaces.adfinternal.agent.CapabilitiesProvider._getCapabilities(CapabilitiesProvider.java:110) at org.apache.myfaces.adfinternal.agent.CapabilitiesProvider.getCapabilities(CapabilitiesProvider.java:91) at org.apache.myfaces.adfinternal.agent.AdfFacesAgentImpl._getCapabilityMap(AdfFacesAgentImpl.java:263) at org.apache.myfaces.adfinternal.agent.AdfFacesAgentImpl._initialize(AdfFacesAgentImpl.java:233) at org.apache.myfaces.adfinternal.agent.AdfFacesAgentImpl.<init>(AdfFacesAgentImpl.java:40) at org.apache.myfaces.adfinternal.context.AdfFacesContextImpl.getAgent(AdfFacesContextImpl.java:533) at org.apache.myfaces.adfinternal.renderkit.core.CoreRenderKit.chooseRenderKit(CoreRenderKit.java:144) at org.apache.myfaces.adfinternal.renderkit.CoreRenderKitFactory.getRenderKit(CoreRenderKitFactory.java:50) at org.apache.myfaces.context.servlet.ServletFacesContextImpl.getRenderKit(ServletFacesContextImpl.java:184) at org.apache.myfaces.adfinternal.context.FacesContextFactoryImpl$CacheRenderKit.getRenderKit(FacesContextFactoryImpl.java:103) at org.apache.myfaces.adfinternal.application.ViewHandlerImpl._getExtendedRenderKitService(ViewHandlerImpl.java:330) at org.apache.myfaces.adfinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:154) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428) at org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:97) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:830) at org.apache.myfaces.adfinternal.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:320) at org.apache.myfaces.adfinternal.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:289) at org.apache.myfaces.adfinternal.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:213) at org.apache.myfaces.adf.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:90) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) at org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:170) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471) at org.apache.geronimo.jetty.JettyWebApplicationHandler.dispatch(JettyWebApplicationHandler.java:58) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568) at org.mortbay.http.HttpContext.handle(HttpContext.java:1530) at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633) at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) at org.mortbay.http.HttpServer.service(HttpServer.java:909) at org.mortbay.http.HttpConnection.service(HttpConnection.java:816) at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982) at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244) at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) Trinidad developers say: {quote} Looking at the source code for JarFileUrlStreamHandler over in the geronimo codebase, it looks as though they've got a pretty bad bug: their handler is not reentrant (you can't parse one file out of a JAR while in the middle of parsing another). This is 100% legit code on our part (and it'd be a major pain to overhaul our code not to do it). I think you'll need to file a bug against Jetty or Geronimo. {quote} Will include sample WAR (which installs at /devSignup on the server) if I can figure out how to do that. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira