Bug 8020 - Collision due to different Xerces versions
Summary: Collision due to different Xerces versions
Status: RESOLVED DUPLICATE of bug 6374
Alias: None
Product: Tomcat 4
Classification: Unclassified
Component: Jasper (show other bugs)
Version: 4.0.2 Final
Hardware: Sun Solaris
: P3 minor (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-04-12 14:56 UTC by Jorge Serna
Modified: 2004-11-16 19:05 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jorge Serna 2002-04-12 14:56:16 UTC
I have a webapp under Tomcat which includes in its WEB-INF/lib directory 
xerces.jar from Xerces-J v. 1.1.3. Whe I try to access my JSPs I get the error 
which is included bellow this description.Everything worked fine with Tomcat 
4.0.1 (I haven't seen it documented anywhere, but I think Tomcat 4.0.1 uses 
Xerces v 1.4.3 and Tomcat 4.0.2 and 4.0.3 includes Xerces v 1.4.4).

There's an obvious workaround which is removing xerces.jar from WEB-INF/lib 
(which makes everything work fine), but shouldn't it work anyway? I understand 
Jasper uses a different ClassLoader in order to have no interference from 
different XML parsers used by the webapps.

ERROR:

Apache Tomcat/4.0.2 - HTTP Status 500 - Internal Server
Error



type Exception report

message Internal Server Error

description The server encountered an internal error (Internal Server Error) 
that prevented it from fulfilling this request.

exception 

javax.servlet.ServletException: Servlet.init() for servlet jsp threw exception
        at java.lang.Throwable.fillInStackTrace(Native Method)
        at java.lang.Throwable.fillInStackTrace(Compiled Code)
        at java.lang.Throwable.(Compiled Code)
        at java.lang.Exception.(Compiled Code)
        at javax.servlet.ServletException.(Compiled Code)
        at org.apache.catalina.core.StandardWrapper.loadServlet(Compiled Code)
        at org.apache.catalina.core.StandardWrapper.allocate(Compiled Code)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2
14)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at org.apache.catalina.core.StandardPipeline.invoke(Compiled Code)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:1
90)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(Compiled Code)
        at org.apache.catalina.core.StandardContext.invoke(Compiled Code)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java
:170)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at org.apache.catalina.valves.AccessLogValve.invoke(Compiled Code)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        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:174
)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        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(Compiled 
Code)
        at org.apache.catalina.connector.http.HttpProcessor.run(Compiled Code)
        at java.lang.Thread.run(Compiled Code)

root cause 

java.lang.NoClassDefFoundError: org/w3c/dom/range/DocumentRange
        at 
org.apache.xerces.jaxp.DocumentBuilderImpl.(DocumentBuilderImpl.java:98)
        at 
org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(DocumentBui
lderFactoryImpl.java:87)
        at org.apache.jasper.parser.ParserUtils.parseXMLDocument(Compiled Code)
        at 
org.apache.jasper.compiler.TldLocationsCache.processWebDotXml(Compiled Code)
        at 
org.apache.jasper.compiler.TldLocationsCache.(TldLocationsCache.java:138)
        at 
org.apache.jasper.EmbededServletOptions.(EmbededServletOptions.java:345)
        at org.apache.jasper.servlet.JspServlet.init(Compiled Code)
        at org.apache.catalina.core.StandardWrapper.loadServlet(Compiled Code)
        at org.apache.catalina.core.StandardWrapper.allocate(Compiled Code)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2
14)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at org.apache.catalina.core.StandardPipeline.invoke(Compiled Code)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:1
90)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(Compiled Code)
        at org.apache.catalina.core.StandardContext.invoke(Compiled Code)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java
:170)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        at org.apache.catalina.valves.AccessLogValve.invoke(Compiled Code)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        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:174
)
        at org.apache.catalina.core.StandardPipeline.invokeNext(Compiled Code)
        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(Compiled 
Code)
        at org.apache.catalina.connector.http.HttpProcessor.run(Compiled Code)
        at java.lang.Thread.run(Compiled Code)
Comment 1 Remy Maucherat 2002-04-12 15:00:14 UTC
The new code used to allow more flexibility in the XML parser handling had bugs 
(sorry about that).

*** This bug has been marked as a duplicate of 6374 ***