+1 absolutely

Can you do it?

-dain

On Apr 22, 2006, at 7:36 PM, Jeff Genender wrote:

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.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

Reply via email to