quarkus: Quarkus JaCoCo - Generated jacoco.xml is not parseable anymore by the sonar-maven-plugin
Describe the bug
Since Quarkus-3.6.0, the generated jacoco.xml is not “Parseable” by the sonar-maven-plugin. Below is the StackTrace:
Error: Coverage report '/__w/<GITHUB-WORKSPACE>/<GIT-REPO>/target/jacoco-report/jacoco.xml' could not be read/imported. Error: {} java.lang.IllegalStateException: Failed to parse JaCoCo XML report: /__w/<GITHUB-WORKSPACE>/<GIT-REPO>/target/jacoco-report/jacoco.xml at org.snar.plugins.jacoco.XmlReportParser.parse(XmlReportParser.java:108) at org.sonar.plugins.jacoco.JacocoSensor.importReport(JacocoSensor.java:72) at org.sonar.plugins.jacoco.JacocoSensor.importReports(JacocoSensor.java:64) at org.sonar.plugins.jacoco.JacocoSensor.execute(JacocoSensor.java:55) at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:64) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88) at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:61) at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:79) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:61) at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:82) at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188) at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167) at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:403) at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:399) at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:368) at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188) at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167) at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:137) at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188) at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167) at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72) at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60) at jdk.proxy4/jdk.proxy4.$Proxy27.execute(Unknown Source) at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189) at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138) at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:64) at org.sonarsource.scanner.maven.SonarQubeMojo.execute(SonarQubeMojo.java:108) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:1***) 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:***8) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:***1) 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 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,8202] Message: Element type "counter" must be followed by either attribute specifications, ">" or "/>". at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652) at org.sonar.plugins.jacoco.XmlReportParser.parse(XmlReportParser.java:61) ... 59 common frames omitted
Expected behavior
The generated jacoco.xml should be “Parseable” by the sonar-plugin for publishing the report.
Actual behavior
Since Quarkus-3.6.0, the generated jacoco.xml is not “Parseable” by the sonar-maven-plugin.
How to Reproduce?
Reproducer:
Steps to reproduce the bug:
- Create a single module maven project with some basic tests
- Configure “org.sonarsource.scanner.maven:sonar-maven-plugin” to the latest version: 3.10.0.2594
- Configure quarkus-jacoco as per the Quarkus documentation here: https://quarkus.io/guides/tests-with-coverage
- Run the “mvn clean install && mvn sonar:sonar” commands
Output of uname -a or ver
No response
Output of java -version
17
Quarkus version or git rev
3.6.0
Build tool (ie. output of mvnw --version or gradlew --version)
maven 3.8.1
Additional information
Sonar maven plugin ( org.sonarsource.scanner.maven:sonar-maven-plugin) version: 3.10.0.2594
About this issue
- Original URL
- State: closed
- Created 7 months ago
- Reactions: 1
- Comments: 15 (6 by maintainers)
3.6.2 should be available on Wednesday, maybe even already tomorrow evening. But that’s all up to @gsmet!
I just tested that and it’s working. Thank you for the fix! 😃
@famod I confirm the problem is fixed in the version 3.6.3