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.addModule
Descriptor(RegistryInfrastructureConstructor.java:202)
org.apache.hivemind.impl.RegistryBuilder.processModuleDescriptorProv
ider(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.attemptFullStar
t(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.getDescriptorRe
sources 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