geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: Classloader clashing and plugins
Date Sun, 02 Sep 2007 21:38:57 GMT

On Sep 2, 2007, at 1:52 PM, Jeff Genender wrote:

> Welp...that did it ;-)  I put a dep on the jasper config and the  
> console
> works...yay!
>
> As always, thanks!  Also...this is probably yet another plugin anomoly
> we need to document at some point ;-)

In general depending on a jar that might be used somewhere else is  
dangerous and might lead to such CCE.  The solutions I know of are:

- be careful and don't do that
- have a classloader per jar (an idea Dain suggested a long time ago,  
but it requires accurate jar-jar dependency information, better than  
is in maven poms)
- use the osgi classloader (which, without proof to the contrary, I  
expect to have the same problems with inaccurate metadata as the above)

thanks
david jencks

>
> Jeff
>
> David Jencks wrote:
>> I would guess that something has included a jasper jar as a  
>> dependency
>> (either by including it in a war lib or with a dependency on the  
>> jasper
>> jar in the geronimo repo) rather than using a dependency on the  
>> jasper
>> config.  If you can debug this CCE and find out what classloader the
>> jasper class is loaded in that would be very useful.
>>
>> thanks
>> david jencks
>>
>> On Sep 2, 2007, at 7:52 AM, Jeff Genender wrote:
>>
>>> Hi,
>>>
>>> I just finished the server plugin for Terracotta which can be  
>>> found here:
>>>
>>> http://svn.terracotta.org/svn/tc/geronimo-plugin/trunk/geronimo-2.0/
>>>
>>> When I install the plugin, everything is fine.  I can start/stop
>>> Terracotta, and works as expected.  However when I stop Geronimo and
>>> restart it and I go to the console, the console starts to spew  
>>> errors
>>> and we get errors in a majority of the portlets (as shown below).
>>> Anyone know why a plugin's classes are interfering with other  
>>> classes?
>>> Do we have a classloader problem?  Any ideas on what is going on?
>>>
>>> Side note - Terracotta needs certain components from Jetty as  
>>> artifacts
>>> and I am running the Tomcat version of Geronimo.
>>>
>>> Thanks,
>>>
>>> Jeff
>>>
>>> 08:46:05,413 ERROR [normal_jsp]] Servlet.service() for servlet
>>> jsp.WEB_002dINF.view.configmanager.normal_jsp threw exception
>>> java.lang.ClassCastException:  
>>> org.apache.jasper.runtime.ELContextImpl
>>>         at
>>> org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate 
>>> (PageContextImpl.java:920)
>>>
>>>         at
>>> jsp.WEB_002dINF.view.configmanager.normal_jsp._jspx_meth_c_005fif_00 
>>> 5f0(normal_jsp.java:133)
>>>
>>>         at
>>> jsp.WEB_002dINF.view.configmanager.normal_jsp._jspService 
>>> (normal_jsp.java:101)
>>>
>>>         at
>>> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:806)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
>>> (ApplicationFilterChain.java:290)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter 
>>> (ApplicationFilterChain.java:206)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke 
>>> (ApplicationDispatcher.java:654)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.doInclude 
>>> (ApplicationDispatcher.java:557)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.include 
>>> (ApplicationDispatcher.java:481)
>>>
>>>         at
>>> org.apache.pluto.core.impl.PortletRequestDispatcherImpl.include 
>>> (PortletRequestDispatcherImpl.java:65)
>>>
>>>         at
>>> org.apache.geronimo.console.configmanager.ConfigManagerPortlet.doVie 
>>> w(ConfigManagerPortlet.java:353)
>>>
>>>         at
>>> javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
>>>         at javax.portlet.GenericPortlet.render 
>>> (GenericPortlet.java:175)
>>>         at
>>> org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java: 
>>> 218)
>>>         at
>>> org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:158)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:693)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:806)
>>>         at
>>> org.apache.pluto.core.PortletServlet.service(PortletServlet.java: 
>>> 153)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
>>> (ApplicationFilterChain.java:290)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter 
>>> (ApplicationFilterChain.java:206)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke 
>>> (ApplicationDispatcher.java:654)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.doInclude 
>>> (ApplicationDispatcher.java:557)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.include 
>>> (ApplicationDispatcher.java:481)
>>>
>>>         at
>>> org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke 
>>> (PortletInvokerImpl.java:120)
>>>
>>>         at
>>> org.apache.pluto.invoker.impl.PortletInvokerImpl.render 
>>> (PortletInvokerImpl.java:73)
>>>
>>>         at
>>> org.apache.pluto.PortletContainerImpl.renderPortlet 
>>> (PortletContainerImpl.java:119)
>>>
>>>         at
>>> org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.renderP 
>>> ortlet(PortletContainerWrapperImpl.java:70)
>>>
>>>         at
>>> org.apache.pluto.portalImpl.aggregation.PortletFragment.service 
>>> (PortletFragment.java:168)
>>>
>>>         at
>>> jsp.WEB_002dINF.aggregation.ColumnFragment_jsp._jspService 
>>> (ColumnFragment_jsp.java:70)
>>>
>>>         at
>>> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:806)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
>>> (ApplicationFilterChain.java:290)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter 
>>> (ApplicationFilterChain.java:206)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke 
>>> (ApplicationDispatcher.java:654)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.doInclude 
>>> (ApplicationDispatcher.java:557)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.include 
>>> (ApplicationDispatcher.java:481)
>>>
>>>         at
>>> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service 
>>> (AbstractFragment.java:112)
>>>
>>>         at
>>> jsp.WEB_002dINF.aggregation.RowFragment_jsp._jspService 
>>> (RowFragment_jsp.java:67)
>>>
>>>         at
>>> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:806)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
>>> (ApplicationFilterChain.java:290)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter 
>>> (ApplicationFilterChain.java:206)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke 
>>> (ApplicationDispatcher.java:654)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.doInclude 
>>> (ApplicationDispatcher.java:557)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.include 
>>> (ApplicationDispatcher.java:481)
>>>
>>>         at
>>> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service 
>>> (AbstractFragment.java:112)
>>>
>>>         at
>>> jsp.WEB_002dINF.aggregation.PageFragment_jsp._jspService 
>>> (PageFragment_jsp.java:71)
>>>
>>>         at
>>> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:806)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
>>> (ApplicationFilterChain.java:290)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter 
>>> (ApplicationFilterChain.java:206)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke 
>>> (ApplicationDispatcher.java:654)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.doInclude 
>>> (ApplicationDispatcher.java:557)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.include 
>>> (ApplicationDispatcher.java:481)
>>>
>>>         at
>>> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service 
>>> (AbstractFragment.java:112)
>>>
>>>         at
>>> jsp.WEB_002dINF.aggregation.PageFragment_jsp._jspService 
>>> (PageFragment_jsp.java:71)
>>>
>>>         at
>>> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:806)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
>>> (ApplicationFilterChain.java:290)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter 
>>> (ApplicationFilterChain.java:206)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke 
>>> (ApplicationDispatcher.java:654)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.doInclude 
>>> (ApplicationDispatcher.java:557)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.include 
>>> (ApplicationDispatcher.java:481)
>>>
>>>         at
>>> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service 
>>> (AbstractFragment.java:112)
>>>
>>>         at
>>> jsp.WEB_002dINF.aggregation.RootFragment_jsp._jspService 
>>> (RootFragment_jsp.java:109)
>>>
>>>         at
>>> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:806)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
>>> (ApplicationFilterChain.java:290)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter 
>>> (ApplicationFilterChain.java:206)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke 
>>> (ApplicationDispatcher.java:654)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.doInclude 
>>> (ApplicationDispatcher.java:557)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationDispatcher.include 
>>> (ApplicationDispatcher.java:481)
>>>
>>>         at
>>> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service 
>>> (AbstractFragment.java:112)
>>>
>>>         at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java: 
>>> 254)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:693)
>>>         at javax.servlet.http.HttpServlet.service 
>>> (HttpServlet.java:806)
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter 
>>> (ApplicationFilterChain.java:290)
>>>
>>>         at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter 
>>> (ApplicationFilterChain.java:206)
>>>
>>>         at
>>> org.apache.catalina.core.StandardWrapperValve.invoke 
>>> (StandardWrapperValve.java:230)
>>>
>>>         at
>>> org.apache.catalina.core.StandardContextValve.invoke 
>>> (StandardContextValve.java:175)
>>>
>>>         at
>>> org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke 
>>> (DefaultSubjectValve.java:56)
>>>
>>>         at
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke 
>>> (AuthenticatorBase.java:525)
>>>
>>>         at
>>> org.apache.geronimo.tomcat.GeronimoStandardContext 
>>> $SystemMethodValve.invoke(GeronimoStandardContext.java:351)
>>>
>>>         at
>>> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke 
>>> (GeronimoBeforeAfterValve.java:47)
>>>
>>>         at
>>> org.apache.catalina.core.StandardHostValve.invoke 
>>> (StandardHostValve.java:128)
>>>
>>>         at
>>> org.apache.catalina.valves.ErrorReportValve.invoke 
>>> (ErrorReportValve.java:104)
>>>
>>>         at
>>> org.apache.catalina.core.StandardEngineValve.invoke 
>>> (StandardEngineValve.java:109)
>>>
>>>         at
>>> org.apache.catalina.valves.AccessLogValve.invoke 
>>> (AccessLogValve.java:563)
>>>         at
>>> org.apache.catalina.connector.CoyoteAdapter.service 
>>> (CoyoteAdapter.java:261)
>>>
>>>         at
>>> org.apache.coyote.http11.Http11Processor.process 
>>> (Http11Processor.java:844)
>>>
>>>         at
>>> org.apache.coyote.http11.Http11Protocol 
>>> $Http11ConnectionHandler.process(Http11Protocol.java:581)
>>>
>>>         at
>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run 
>>> (JIoEndpoint.java:447)
>>>         at java.lang.Thread.run(Thread.java:613)


Mime
View raw message