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 
[EMAIL PROTECTED] 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

Reply via email to