Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-13709

ClassCast Exception when parsing JUnit surefire reports during website generation

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved (View Workflow)
    • Major
    • Resolution: Fixed
    • maven-plugin
    • None
    • Linux 64-bit, jenkins 1.462, java 7, maven 3.0.4

    Description

      When generating a website with mvn clean site site:deploy, I will consistently get a ClassCastException when jenkins is trying to parse the junit surefire reports.
      This does not happen if I run the command from the command-line, and interestingly enough it doesn't happen for the non-site build (e.g. mvn clean deploy)

      -------------------------------------------------------
      T E S T S
      -------------------------------------------------------
      Running com.ften.creditpool.latency.ThroughputStatsTest
      Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.566 sec
      Running com.ften.creditpool.latency.ThroughputCreditPoolTest
      Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.015 sec
      Running com.ften.creditpool.latency.MinMaxAverageTest
      Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.008 sec
      Running com.ften.creditpool.audit.AuditingCreditPoolTest
      Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 sec
      Running com.ften.creditpool.CreditPoolBeanTest
      Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.013 sec

      Results :

      Tests run: 29, Failures: 0, Errors: 0, Skipped: 0

      mojoSucceeded org.apache.maven.plugins:maven-surefire-plugin:2.12(default-test)
      [JENKINS] Recording test results
      hudson.util.IOException2: Failed to read /var/lib/jenkins/jobs/risk-alerts_site/workspace/credit-pool/target/surefire-reports/TEST-com.ften.creditpool.CreditPoolBeanTest.xml
      at hudson.tasks.junit.TestResult.parse(TestResult.java:244)
      at hudson.tasks.junit.TestResult.parse(TestResult.java:163)
      at hudson.maven.reporters.SurefireArchiver.postExecute(SurefireArchiver.java:141)
      at hudson.maven.Maven3Builder$MavenExecutionListener.recordMojoEnded(Maven3Builder.java:421)
      at hudson.maven.Maven3Builder$MavenExecutionListener.mojoSucceeded(Maven3Builder.java:403)
      at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:87)
      at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:228)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
      at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:365)
      at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeForkedExecutions(DefaultLifecycleExecutor.java:173)
      at org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildReportPlugin(DefaultMavenReportExecutor.java:284)
      at org.apache.maven.reporting.exec.DefaultMavenReportExecutor.buildMavenReports(DefaultMavenReportExecutor.java:150)
      at org.apache.maven.plugins.site.AbstractSiteRenderingMojo.getReports(AbstractSiteRenderingMojo.java:247)
      at org.apache.maven.plugins.site.SiteMojo.execute(SiteMojo.java:121)
      at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
      at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
      at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
      at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
      at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
      at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
      at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
      at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
      at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329)
      at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239)
      at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158)
      at hudson.maven.Maven3Builder.call(Maven3Builder.java:98)
      at hudson.maven.Maven3Builder.call(Maven3Builder.java:64)
      at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:287)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:722)
      Caused by: org.dom4j.DocumentException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory Nested exception: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory
      at org.dom4j.io.SAXReader.read(SAXReader.java:484)
      at org.dom4j.io.SAXReader.read(SAXReader.java:264)
      at hudson.tasks.junit.SuiteResult.parse(SuiteResult.java:112)
      at hudson.tasks.junit.TestResult.parse(TestResult.java:227)
      ... 44 more
      Caused by: java.lang.ClassCastException: org.dom4j.DocumentFactory cannot be cast to org.dom4j.DocumentFactory
      at org.dom4j.DocumentFactory.getInstance(DocumentFactory.java:97)
      at org.dom4j.io.SAXReader.getDocumentFactory(SAXReader.java:645)
      at org.dom4j.io.SAXReader.createContentHandler(SAXReader.java:969)
      at org.dom4j.io.SAXReader.read(SAXReader.java:449)
      ... 47 more
      forkedProjectSucceeded com.ften.creditpool:credit-pool:0.0.2-SNAPSHOT

      Attachments

        Issue Links

          Activity

            Code changed in jenkins
            User: Kohsuke Kawaguchi
            Path:
            changelog.html
            http://jenkins-ci.org/commit/jenkins/6d298b0a4950c4a1507a0b17bc5071fe25cf4e09
            Log:
            [FIXED JENKINS-13709]

            Integrated new dom4j

            Compare: https://github.com/jenkinsci/jenkins/compare/a2341e6b4c85...6d298b0a4950

            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: changelog.html http://jenkins-ci.org/commit/jenkins/6d298b0a4950c4a1507a0b17bc5071fe25cf4e09 Log: [FIXED JENKINS-13709] Integrated new dom4j Compare: https://github.com/jenkinsci/jenkins/compare/a2341e6b4c85...6d298b0a4950

            I've merged the proposed fix in dom4j as requested. The fix is targeted to 1.577.

            I don't have time to deep dive into this right now, so I could be wrong, but the fix in dom4j appears to me like a bandaid to hide the real problem. The stated error is that a class fails to cast to the class of the same name, which indicates some kind of classloader mess up. If that is the case, the real fix would have to be to fix the classloader mess up, and not where the service lookup happens.

            kohsuke Kohsuke Kawaguchi added a comment - I've merged the proposed fix in dom4j as requested. The fix is targeted to 1.577. I don't have time to deep dive into this right now, so I could be wrong, but the fix in dom4j appears to me like a bandaid to hide the real problem. The stated error is that a class fails to cast to the class of the same name, which indicates some kind of classloader mess up. If that is the case, the real fix would have to be to fix the classloader mess up, and not where the service lookup happens.
            dogfood dogfood added a comment -

            Integrated in jenkins_main_trunk #3624
            [FIXED JENKINS-13709] (Revision 57d6166f9b9149d5411a0f39f17f5f56a812732d)
            [FIXED JENKINS-13709] (Revision 6d298b0a4950c4a1507a0b17bc5071fe25cf4e09)

            Result = SUCCESS
            kohsuke : 57d6166f9b9149d5411a0f39f17f5f56a812732d
            Files :

            • core/pom.xml

            kohsuke : 6d298b0a4950c4a1507a0b17bc5071fe25cf4e09
            Files :

            • changelog.html
            dogfood dogfood added a comment - Integrated in jenkins_main_trunk #3624 [FIXED JENKINS-13709] (Revision 57d6166f9b9149d5411a0f39f17f5f56a812732d) [FIXED JENKINS-13709] (Revision 6d298b0a4950c4a1507a0b17bc5071fe25cf4e09) Result = SUCCESS kohsuke : 57d6166f9b9149d5411a0f39f17f5f56a812732d Files : core/pom.xml kohsuke : 6d298b0a4950c4a1507a0b17bc5071fe25cf4e09 Files : changelog.html
            jsotuyod Juan Sotuyo added a comment -

            I am coming across this issue using Jenkins 1.580.2; which effectively uses dom4j-1.6.1-jenkins-4.jar

            Following Andreas Horts' advice, and running `mvn package site` worked; still I'd rather the build just worked regardless of the targets.

            jsotuyod Juan Sotuyo added a comment - I am coming across this issue using Jenkins 1.580.2; which effectively uses dom4j-1.6.1-jenkins-4.jar Following Andreas Horts' advice, and running `mvn package site` worked; still I'd rather the build just worked regardless of the targets.
            jglick Jesse Glick added a comment -

            This is neither a problem in dom4j nor a bug in the junit plugin. It is a fundamental design flaw in maven-plugin. If you encounter issues like this, simply run mvn as an external process.

            jglick Jesse Glick added a comment - This is neither a problem in dom4j nor a bug in the junit plugin. It is a fundamental design flaw in maven-plugin . If you encounter issues like this, simply run mvn as an external process.

            People

              Unassigned Unassigned
              scooper4711 scooper4711
              Votes:
              13 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: