Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Random org.apache.xerces.impl.dv.DVFactoryException with 2.0.13 and 2.0.14 #560

@tmortagne

Description

@tmortagne

We upgraded from 2.0.12, and we are getting random failures which suggest a messy classpath:

09:46:23,906 [INFO] [jenkins-event-spy] Generated /root/workspace/XWiki_xwiki-platform_master@tmp/withMaven396ee96d/maven-spy-20240819-091633-6207538017429734947557.log
09:46:23,906 [ERROR] Failed to execute goal org.jvnet.jaxb:jaxb-maven-plugin:2.0.14:generate (default) on project xwiki-platform-netflux-rest: Execution default of goal org.jvnet.jaxb:jaxb-maven-plugin:2.0.14:generate failed: DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.jvnet.jaxb:jaxb-maven-plugin:2.0.14:generate (default) on project xwiki-platform-netflux-rest: Execution default of goal org.jvnet.jaxb:jaxb-maven-plugin:2.0.14:generate failed: DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:333)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.jvnet.jaxb:jaxb-maven-plugin:2.0.14:generate failed: DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.
    at com.gradle.maven.scan.extension.internal.d.a.executeMojo (SourceFile:123)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
Caused by: org.apache.xerces.impl.dv.DVFactoryException: DTD factory class org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.
    at org.apache.xerces.impl.dv.DTDDVFactory.getInstance (Unknown Source)
    at org.apache.xerces.impl.dv.DTDDVFactory.getInstance (Unknown Source)
    at org.apache.xerces.impl.xs.opti.SchemaParsingConfig.<init> (Unknown Source)
    at org.apache.xerces.impl.xs.opti.SchemaParsingConfig.<init> (Unknown Source)
    at org.apache.xerces.impl.xs.traversers.XSDHandler.<init> (Unknown Source)
    at org.apache.xerces.impl.xs.traversers.XSDHandler.<init> (Unknown Source)
    at org.apache.xerces.impl.xs.XMLSchemaLoader.<init> (Unknown Source)
    at org.apache.xerces.impl.xs.XMLSchemaLoader.<init> (Unknown Source)
    at org.apache.xerces.impl.xs.XMLSchemaValidator.<init> (Unknown Source)
    at org.apache.xerces.jaxp.validation.XMLSchemaValidatorComponentManager.<init> (Unknown Source)
    at org.apache.xerces.jaxp.validation.ValidatorHandlerImpl.<init> (Unknown Source)
    at org.apache.xerces.jaxp.validation.AbstractXMLSchema.newValidatorHandler (Unknown Source)
    at com.sun.tools.xjc.SchemaCache.newValidator (SchemaCache.java:91)
    at com.sun.tools.xjc.reader.xmlschema.bindinfo.AnnotationParserFactoryImpl$1$1.startElement (AnnotationParserFactoryImpl.java:88)
    at com.sun.xml.xsom.impl.parser.state.NGCCRuntime.startElement (NGCCRuntime.java:228)
    at org.xml.sax.helpers.XMLFilterImpl.startElement (XMLFilterImpl.java:539)
    at com.sun.tools.xjc.util.SubtreeCutter.startElement (SubtreeCutter.java:78)
    at com.sun.tools.xjc.reader.ExtensionBindingChecker.startElement (ExtensionBindingChecker.java:120)
    at org.xml.sax.helpers.XMLFilterImpl.startElement (XMLFilterImpl.java:539)
    at com.sun.tools.xjc.reader.xmlschema.parser.IncorrectNamespaceURIChecker.startElement (IncorrectNamespaceURIChecker.java:98)
    at org.xml.sax.helpers.XMLFilterImpl.startElement (XMLFilterImpl.java:539)
    at com.sun.tools.xjc.reader.xmlschema.parser.CustomizationContextChecker.startElement (CustomizationContextChecker.java:163)
    at org.xml.sax.helpers.XMLFilterImpl.startElement (XMLFilterImpl.java:539)
    at com.sun.tools.xjc.reader.internalizer.DOMForestScanner$LocationResolver.startElement (DOMForestScanner.java:117)
    at com.sun.xml.bind.unmarshaller.DOMScanner.visit (DOMScanner.java:222)
    at com.sun.xml.bind.unmarshaller.DOMScanner.visit (DOMScanner.java:259)
    at com.sun.xml.bind.unmarshaller.DOMScanner.visit (DOMScanner.java:228)
    at com.sun.xml.bind.unmarshaller.DOMScanner.visit (DOMScanner.java:259)
    at com.sun.xml.bind.unmarshaller.DOMScanner.visit (DOMScanner.java:228)
    at com.sun.xml.bind.unmarshaller.DOMScanner.visit (DOMScanner.java:259)
    at com.sun.xml.bind.unmarshaller.DOMScanner.visit (DOMScanner.java:228)
    at com.sun.xml.bind.unmarshaller.DOMScanner.scan (DOMScanner.java:102)
    at com.sun.tools.xjc.reader.internalizer.DOMForestScanner.scan (DOMForestScanner.java:62)
    at com.sun.tools.xjc.reader.internalizer.DOMForestScanner.scan (DOMForestScanner.java:70)
    at com.sun.tools.xjc.reader.internalizer.DOMForestParser.parse (DOMForestParser.java:74)
    at com.sun.tools.xjc.ModelLoader$XMLSchemaParser.parse (ModelLoader.java:210)
    at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.parseEntity (NGCCRuntimeEx.java:351)
    at com.sun.xml.xsom.impl.parser.ParserContext.parse (ParserContext.java:98)
    at com.sun.xml.xsom.parser.XSOMParser.parse (XSOMParser.java:141)
    at com.sun.xml.xsom.parser.XSOMParser.parse (XSOMParser.java:130)
    at com.sun.tools.xjc.ModelLoader.createXSOM (ModelLoader.java:475)
    at com.sun.tools.xjc.ModelLoader.loadXMLSchema (ModelLoader.java:319)
    at com.sun.tools.xjc.ModelLoader.load (ModelLoader.java:121)
    at com.sun.tools.xjc.ModelLoader.load (ModelLoader.java:76)
    at org.jvnet.jaxb.maven.XJC2Mojo.loadModel (XJC2Mojo.java:58)
    at org.jvnet.jaxb.maven.XJC2Mojo.doExecute (XJC2Mojo.java:48)
    at org.jvnet.jaxb.maven.XJC2Mojo.doExecute (XJC2Mojo.java:28)
    at org.jvnet.jaxb.maven.RawXJC2Mojo.doExecute (RawXJC2Mojo.java:491)
    at org.jvnet.jaxb.maven.RawXJC2Mojo.execute (RawXJC2Mojo.java:330)
    at com.gradle.maven.cache.extension.d.c.a (SourceFile:27)
    at com.gradle.maven.cache.extension.d.n.a (SourceFile:23)
    at com.gradle.maven.cache.extension.d.h.a (SourceFile:28)
    at com.gradle.maven.cache.extension.d.m.a (SourceFile:27)
    at com.gradle.maven.cache.extension.d.a.c (SourceFile:118)
    at com.gradle.maven.cache.extension.d.a.a (SourceFile:62)
    at com.gradle.maven.cache.extension.d.e.a (SourceFile:27)
    at com.gradle.maven.cache.extension.d.l.a (SourceFile:17)
    at com.gradle.maven.cache.extension.d.d.a (SourceFile:47)
    at com.gradle.maven.cache.extension.d.b.a (SourceFile:26)
    at com.gradle.maven.cache.extension.d.f$1.run (SourceFile:35)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute (SourceFile:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute (SourceFile:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute (SourceFile:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute (SourceFile:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute (SourceFile:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute (SourceFile:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run (SourceFile:47)
    at com.gradle.maven.cache.extension.d.f.a (SourceFile:31)
    at com.gradle.maven.cache.extension.d.k.a (SourceFile:80)
    at com.gradle.maven.cache.extension.h.b.lambda$createProxy$0 (SourceFile:79)
    at jdk.proxy247.$Proxy1147.execute (Unknown Source)
    at com.gradle.maven.scan.extension.internal.d.a.executeMojo (SourceFile:116)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)

Here is a more complete context with the relevant verbose part of the Maven build log.

The xjcPluginArtifacts log is a bit surprising, it feels like it's loading all the dependencies of the module it's building in its classpath, and that's where Xerces is coming from I guess (this module indeed depends indirectly on Xerces). But I don't quite understand why it needs to load all that.

with the following parent pom.xml setup

        <plugin>
          <groupId>org.jvnet.jaxb</groupId>
          <artifactId>jaxb-maven-plugin</artifactId>
          <!-- Lock down plugin version for build reproducibility -->
          <version>${jaxb.tools.version}</version>
          <configuration>
            <extension>true</extension>
            <args>
              <arg>-Xfluent-api</arg>
            </args>
            <verbose>true</verbose>
            <removeOldOutput>false</removeOldOutput>
            <plugins>
              <plugin>
                <groupId>org.jvnet.jaxb</groupId>
                <artifactId>jaxb2-basics</artifactId>
                <version>${jaxb.tools.version}</version>
              </plugin>
            </plugins>
          </configuration>
        </plugin>

used for example with

      <plugin>
        <groupId>org.jvnet.jaxb</groupId>
        <artifactId>jaxb-maven-plugin</artifactId>
        <configuration>
          <generatePackage>org.xwiki.annotation.rest.model.jaxb</generatePackage>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

I unfortunately don't have much to give you as simple reproduction project/steps since it's quite random on our CI (but we never got that with 2.0.12) and I was never able to reproduce locally.

On the CI, java -version gives:

java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)

and it's using Maven 3.9.6.

Metadata

Metadata

Labels

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions