DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7891>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7891 Class loader collision Summary: Class loader collision Product: Tomcat 4 Version: 4.0 Beta 6 Platform: PC OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Catalina AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Class loader can load the same class twice upon startup throwing the following exception: REPRODUCE: 1.) Set up fames page pointing to two seperate jsp pages. The frames pages should not couses any class loading itself. (simple HTML page will do) 2.) The two pages which will be both loaded into the frameset need to attempt to load a class using the catalina class loader. 3.) Restart Catalina to dump all the classes. 4.) Refresh the framset. On Internet Explorer this will cuse the 2 pages to be requested simultaniusly. The catalina will get 2 simultanius requests for two pages both of which will attempt to load the same class. A race condition occures and one of the pages fails to load with the following exception. 5.) After the initial error. All pages work fine. To reproduce restart Catalina. Exception: java.lang.LinkageError: duplicate class definition: org/apache/turbine/services/rundata/DefaultTurbineRunData Stack Trace follows: java.lang.LinkageError: duplicate class definition: org/apache/turbine/services/rundata/DefaultTurbineRunData at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:486) at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:111) at java.net.URLClassLoader.defineClass(URLClassLoader.java:248) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at org.apache.catalina.loader.StandardClassLoader.findClass (StandardClassLoader.java:664) at org.apache.catalina.loader.StandardClassLoader.loadClass (StandardClassLoader.java:1077) at org.apache.catalina.loader.StandardClassLoader.loadClass (StandardClassLoader.java:976) at org.apache.turbine.services.factory.TurbineFactoryService.loadClass (TurbineFactoryService.java:551) at org.apache.turbine.services.factory.TurbineFactoryService.getInstance (TurbineFactoryService.java:213) at org.apache.turbine.services.pool.TurbinePoolService.getInstance (TurbinePoolService.java:398) at org.apache.turbine.services.rundata.TurbineRunDataService.getRunData (TurbineRunDataService.java:264) at org.apache.turbine.services.rundata.TurbineRunDataService.getRunData (TurbineRunDataService.java:215) at org.apache.turbine.util.RunDataFactory.getRunData (RunDataFactory.java:135) at org.apache.turbine.Turbine.doGet(Turbine.java:261) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:255) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:225) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke (StandardContext.java:2252) at org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:164) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:446) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:163) at org.apache.catalina.core.StandardPipeline.invokeNext (StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process (HttpProcessor.java:875) at org.apache.catalina.connector.http.HttpProcessor.run (HttpProcessor.java:952) at java.lang.Thread.run(Thread.java:484) -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>