geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Genender <jgenen...@savoirtech.com>
Subject Re: [jira] Closed: (GERONIMO-1871) Unable to deploy Tapestry app due to classloading issue
Date Sun, 23 Apr 2006 02:36:26 GMT
Can we get this in 1.1?  This is a pretty nasty bug.

Jeff


Gianny Damour (JIRA) wrote:
>      [ http://issues.apache.org/jira/browse/GERONIMO-1871?page=all ]
>      
> Gianny Damour closed GERONIMO-1871:
> -----------------------------------
> 
>     Resolution: Fixed
> 
> The problem was that the TCCL was set to the Tomcat WebAppClassLoader and not the Geronimo
TomcatClassLoader. WebAppClassLoader was defining all the jars in WEB-INF/lib, its parent
was TomcatClassLoader, which was also defining these jars. Hence this duplication.
> 
>> Unable to deploy Tapestry app due to classloading issue
>> -------------------------------------------------------
>>
>>          Key: GERONIMO-1871
>>          URL: http://issues.apache.org/jira/browse/GERONIMO-1871
>>      Project: Geronimo
>>         Type: Bug
>>     Security: public(Regular issues) 
>>   Components: kernel
>>     Versions: 1.2
>>  Environment: Windows XP
>>     Reporter: Bryan Noll
>>     Assignee: Gianny Damour
>>     Priority: Critical
> 
>> Here is the stacktrace encountered when attempting to deploy a Tapestry application.
 Please scroll down to see more info after the stack trace.
>> org.apache.hivemind.ApplicationRuntimeException: Error: Module hivemind is duplicated!
 Definition in jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/hivemind-1.1.jar!/META-INF/hivemodule.xml
has been ignored in favor of existing definition from jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/hivemind-1.1.jar!/META-INF/hivemodule.xml.
>> org.apache.hivemind.impl.StrictErrorHandler.error(StrictErrorHandler.java:39)
>> org.apache.hivemind.impl.RegistryInfrastructureConstructor.addModuleDescriptor(RegistryInfrastructureConstructor.java:202)
>> org.apache.hivemind.impl.RegistryBuilder.processModuleDescriptorProvider(RegistryBuilder.java:168)
>> org.apache.hivemind.impl.RegistryBuilder.constructRegistry(RegistryBuilder.java:143)
>> org.apache.tapestry.ApplicationServlet.constructRegistry(ApplicationServlet.java:253)
>> org.apache.tapestry.ApplicationServlet.init(ApplicationServlet.java:194)
>> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
>> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
>> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3915)
>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4176)
>> org.apache.geronimo.tomcat.GeronimoStandardContext.access$101(GeronimoStandardContext.java:66)
>> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:270)
>> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:31)
>> org.apache.geronimo.tomcat.GeronimoStandardContext.start(GeronimoStandardContext.java:185)
>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
>> org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:287)
>> org.apache.geronimo.tomcat.TomcatContainer$$FastClassByCGLIB$$9370b073.invoke(<generated>)
>> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:800)
>> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36)
>> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
>> org.apache.geronimo.tomcat.TomcatContainer$$EnhancerByCGLIB$$7af7fb0d.addContext(<generated>)
>> org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:416)
>> org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:936)
>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:325)
>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:110)
>> org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:132)
>> org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:537)
>> org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:208)
>> org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans(Configuration.java:315)
>> org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.invoke(<generated>)
>> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:173)
>> org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start(ConfigurationManagerImpl.java:229)
>> org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.invoke(<generated>)
>> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
>> org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:125)
>> org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
>> net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
>> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
>> org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
>> org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke(MBeanServerDelegate.java:117)
>> mx4j.remote.rmi.RMIConnectionInvoker.invoke(RMIConnectionInvoker.java:219)
>> sun.reflect.GeneratedMethodAccessor223.invoke(Unknown Source)
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> java.lang.reflect.Method.invoke(Method.java:324)
>> mx4j.remote.rmi.RMIConnectionProxy.invoke(RMIConnectionProxy.java:34)
>> mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain(RMIConnectionSubjectInvoker.java:99)
>> mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000(RMIConnectionSubjectInvoker.java:31)
>> mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run(RMIConnectionSubjectInvoker.java:90)
>> java.security.AccessController.doPrivileged(Native Method)
>> javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
>> mx4j.remote.MX4JRemoteUtils.subjectInvoke(MX4JRemoteUtils.java:163)
>> mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke(RMIConnectionSubjectInvoker.java:86)
>> mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke(RMIConnectionSubjectInvoker.java:80)
>> $Proxy4.invoke(Unknown Source)
>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:221)
>> sun.reflect.GeneratedMethodAccessor223.invoke(Unknown Source)
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> java.lang.reflect.Method.invoke(Method.java:324)
>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
>> sun.rmi.transport.Transport$1.run(Transport.java:148)
>> java.security.AccessController.doPrivileged(Native Method)
>> sun.rmi.transport.Transport.serviceCall(Transport.java:144)
>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
>> java.lang.Thread.run(Thread.java:534) 
>> The org.apache.hivemind.impl.XmlModuleDescriptorProvider.getDescriptorResources method
of the hivemind-1.1.jar (depended upon by Tapestry) makes a call like:
>> classLoader.getResources("META-INF/hivemodule.xml")
>> and 14 different resources are returned.  There should only be 7, as each one of
them are errantly duplicated.  See the following output from some println's added to the hivemind
code.  This is printed out in the e.hasMoreElements while loop...
>> 15:10:26,006 INFO  [XmlModuleDescriptorProvider] Processing modules visible to org.apache.hivemind.impl.DefaultClassResolver@1ce6eaf
for resourcePath = META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/hivemind-1.1.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/hivemind-lib-1.1.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-4.0.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-annotations-4.0.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-contrib-4.0.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-flash-0.1.1.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-spring-0.1.2.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/hivemind-1.1.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/hivemind-lib-1.1.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-4.0.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-annotations-4.0.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-contrib-4.0.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-flash-0.1.1.jar!/META-INF/hivemodule.xml
>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/tapestry-spring-0.1.2.jar!/META-INF/hivemodule.xml
>> size of descriptors list = 14
> 

Mime
View raw message