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

Error by parsing mutations.xml - Bean has no property named indexes

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Blocker Blocker
    • pitmutation-plugin
    • Jenkins: 2.332.3 / PIT Mutation Version: 1.0-18 / org.pitest.pitest-maven: 1.9.2

      Hello,
      I am trying to display the PIT mutation report in jenkins. Unfortunately there is an error when parsing the mutations.xml:

      Juli 12, 2022 11:36:23 VORM. SCHWERWIEGEND org.apache.commons.digester3.Digester parse
      An error occurred while parsing XML from '(already loaded from stream)', see nested exceptions
      java.lang.NoSuchMethodException: Bean has no property named indexes
      	at org.apache.commons.digester3.SetNestedPropertiesRule$AnyChildRule.body(SetNestedPropertiesRule.java:513)
      	at org.apache.commons.digester3.Digester.endElement(Digester.java:1086)
      Caused: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 474; Error at line 3 char 474: Bean has no property named indexes
      	at org.apache.commons.digester3.Digester.createSAXException(Digester.java:3118)
      	at org.apache.commons.digester3.Digester.createSAXException(Digester.java:3146)
      	at org.apache.commons.digester3.Digester.endElement(Digester.java:1091)
      	at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:610)
      	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1718)
      	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2883)
      	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
      	at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
      	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
      	at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
      	at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
      	at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
      	at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
      	at org.apache.commons.digester3.Digester.parse(Digester.java:1642)
      	at org.apache.commons.digester3.Digester.parse(Digester.java:1701)
      	at org.jenkinsci.plugins.pitmutation.MutationReport.digestMutations(MutationReport.java:37)
      	at org.jenkinsci.plugins.pitmutation.MutationReport.create(MutationReport.java:26)
      	at org.jenkinsci.plugins.pitmutation.PitBuildAction.readReports(PitBuildAction.java:95)
      	at org.jenkinsci.plugins.pitmutation.PitBuildAction.getReports(PitBuildAction.java:70)
      	at org.jenkinsci.plugins.pitmutation.targets.ProjectMutations.getMutationStats(ProjectMutations.java:35)
      	at org.jenkinsci.plugins.pitmutation.PitPublisher$PercentageThresholdCondition.decideResult(PitPublisher.java:247)
      	at org.jenkinsci.plugins.pitmutation.PitPublisher.decideBuildResult(PitPublisher.java:199)
      	at org.jenkinsci.plugins.pitmutation.PitPublisher.perform(PitPublisher.java:123)
      	at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
      	at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:100)
      	at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:70)
      	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      

      I used the `org.pitest.pitest-maven` plugin to run mutation tests

      <plugin>
      	<groupId>org.pitest</groupId>
      	<artifactId>pitest-maven</artifactId>
      	<version>1.9.2</version>
      	<dependencies>
      		<dependency>
      			<groupId>org.pitest</groupId>
      			<artifactId>pitest-junit5-plugin</artifactId>
      			<version>1.0.0</version>
      		</dependency>
      	</dependencies>
      	<configuration>
      		<targetClasses>
      			<param>com.application.*</param>
      		</targetClasses>
      		<targetTests>
      			<param>com.application.*</param>
      		</targetTests>
      		<outputFormats>
      			<outputFormat>xml</outputFormat>
      			<outputFormat>html</outputFormat>
      		</outputFormats>
      		<exportLineCoverage>true</exportLineCoverage>
      		<failWhenNoMutations>false</failWhenNoMutations>
      		<timestampedReports>false</timestampedReports>
      	</configuration>
      </plugin>
      

       

          [JENKINS-68990] Error by parsing mutations.xml - Bean has no property named indexes

          Nina Marwede added a comment -

          I confirm this.

          From what I see, commit https://github.com/hcoles/pitest/commit/a6179d781848b21af4c50e861dd34d25f129b7ca in Pitest 1.9.0 changed the format of the XML output slightly by adding <indexes> and <blocks> tags.

          So I would appreciate if the Jenkins plugin can be updated to be able to read the new format.

          Workarounds:

          • Stick with Pitest 1.8.1
          • Edit the XML file and remove the additional tags – the following works for me:
            • sed -i -E -e 's/<\/?(blocks|indexes)>//g' mutations.xml

          Nina Marwede added a comment - I confirm this. From what I see, commit https://github.com/hcoles/pitest/commit/a6179d781848b21af4c50e861dd34d25f129b7ca in Pitest 1.9.0 changed the format of the XML output slightly by adding <indexes> and <blocks> tags. So I would appreciate if the Jenkins plugin can be updated to be able to read the new format. Workarounds: Stick with Pitest 1.8.1 Edit the XML file and remove the additional tags – the following works for me: sed -i -E -e 's/<\/?(blocks|indexes)>//g' mutations.xml

          Hello, I created a pull request for this issue https://github.com/jenkinsci/pitmutation-plugin/pull/252

          Vasile Jureschi added a comment - Hello, I created a pull request for this issue https://github.com/jenkinsci/pitmutation-plugin/pull/252

            gigasproule Benjamin Sproule
            maik_heene Maik Heene
            Votes:
            3 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: