[
https://issues.apache.org/jira/browse/XERCESJ-48?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Elliotte Rusty Harold resolved XERCESJ-48.
------------------------------------------
Resolution: Won't Do
What changed in later Xerces/Java:
Deprecate no-args constructors for
XERCESJ-339
- Current Xerces (repo is 2.12.3) no longer bundles JAXP API classes: the
build
excludes javax/xml/** (build.xml:252,299) and xercesImpl.jar only
packages org/ Context
apache/** and META-INF/** (build.xml:337). It also declares
Automatic-Module- 78,840 tokens
Name: org.apache.xerces (build.xml:340).
39% used
- Java 9+ puts JAXP in the java.xml platform module. With normal
parent-first $0.00 spent
delegation the platform copy wins, and split packages are rejected on
the
module path, so the classic 2001 setup no longer occurs with a clean
install. LSP
- Modern JDK FactoryFinder explicitly checks
type.isAssignableFrom(providerClass) LSPs are disabled
and wraps failures in FactoryConfigurationError, so a mismatch now
usually
surfaces as FactoryConfigurationError with a ClassCastException cause
rather
than a bare CCE.
What is still relevant:
- The binary distribution still ships tools/xml-apis.jar (build.xml:754),
and
that jar contains javax/xml/parsers/*.class. If a user puts it together
with
xercesImpl.jar on a child-first webapp classloader (or on the module
path),
the same duplicate-API/CCE situation can still be recreated. That is a
deployment/configuration problem, not a parser bug.
- docs/faq-general.xml:74 discusses classloader-driven CCEs in Xerces
ObjectFactory, but not this JAXP duplicate-API case, and it still
references
JDK 1.4/endorsed standards and dead IBM links.
Verdict: Nothing needs fixing in Xerces source for XERCESJ-48 itself; the
original defect is obsolete for supported modern setups.
> ClassCastException with DocumentBuilderFactoryImpl
> --------------------------------------------------
>
> Key: XERCESJ-48
> URL: https://issues.apache.org/jira/browse/XERCESJ-48
> Project: Xerces2-J
> Issue Type: Bug
> Components: JAXP (javax.xml.parsers)
> Affects Versions: 2.0.0 [beta 2]
> Environment: Operating System: Linux
> Platform: Other
> Reporter: Joel P. Worrall
>
> I was starting up the Tomcat 4.0 servlet engine, running against JDK 1.4 and
> received the following error when attempting to start the engine. I'm
> willing
> to believe this is just a library issue on my part, but I'm not an idiot and
> have been hunting it down for 2 days now. I even rebuilt the XErces2 jar
> under
> my running 1.4 environment (by downloading the source and running Ant against
> my JAVA_HOME. The Stacktrace follows....
> javax.servlet.ServletException: Servlet.init() for servlet jsp threw exception
> at org.apache.catalina.core.StandardWrapper.load
> (StandardWrapper.java:871)
> at org.apache.catalina.core.StandardContext.loadOnStartup
> (StandardContext.java:3267)
> at org.apache.catalina.core.StandardContext.start
> (StandardContext.java:3384)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:612)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
> at org.apache.catalina.core.StandardEngine.start
> (StandardEngine.java:307)
> at org.apache.catalina.core.StandardService.start
> (StandardService.java:388)
> at org.apache.catalina.core.StandardServer.start
> (StandardServer.java:505)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:776)
> at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
> at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:42)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:28)
> at java.lang.reflect.Method.invoke(Method.java:313)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
> ----- Root Cause -----
> java.lang.ClassCastException:
> org.apache.xerces.jaxp.DocumentBuilderFactoryImpl
> at javax.xml.parsers.DocumentBuilderFactory.newInstance
> (DocumentBuilderFactory.java:103)
> at org.apache.jasper.parser.ParserUtils.parseXMLDocument
> (ParserUtils.java:183)
> at org.apache.jasper.compiler.TldLocationsCache.processWebDotXml
> (TldLocationsCache.java:165)
> at org.apache.jasper.compiler.TldLocationsCache.<init>
> (TldLocationsCache.java:138)
> at org.apache.jasper.EmbededServletOptions.<init>
> (EmbededServletOptions.java:324)
> at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:266)
> at org.apache.catalina.core.StandardWrapper.load
> (StandardWrapper.java:852)
> at org.apache.catalina.core.StandardContext.loadOnStartup
> (StandardContext.java:3267)
> at org.apache.catalina.core.StandardContext.start
> (StandardContext.java:3384)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:612)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1123)
> at org.apache.catalina.core.StandardEngine.start
> (StandardEngine.java:307)
> at org.apache.catalina.core.StandardService.start
> (StandardService.java:388)
> at org.apache.catalina.core.StandardServer.start
> (StandardServer.java:505)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:776)
> at org.apache.catalina.startup.Catalina.execute(Catalina.java:681)
> at org.apache.catalina.startup.Catalina.process(Catalina.java:179)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:42)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:28)
> at java.lang.reflect.Method.invoke(Method.java:313)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:243)
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]