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

Reply via email to