SonarQube reporting is failing with a jacoco error: Incompatible version 1007

Article ID:205074234
2 minute readKnowledge base
On this page

Issue

In your build you are generating tests coverage data using jacoco and the import of these data in SonarQube is failing with an error like :

15:49:32 [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project XXXX: Unable to read /scratch/jenkins/workspace/xxxx/xxxx/target/jacoco.exec: Incompatible version 1007. -> [Help 1]
15:49:32 org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project XXXX: Unable to read /scratch/jenkins/workspace/xxxx/xxxx/target/jacoco.exec
15:49:32 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
15:49:32 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
15:49:32 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
15:49:32 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
15:49:32 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
15:49:32 	at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
15:49:32 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
15:49:32 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
15:49:32 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
15:49:32 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
15:49:32 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
15:49:32 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
15:49:32 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
15:49:32 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
15:49:32 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
15:49:32 	at java.lang.reflect.Method.invoke(Method.java:497)
15:49:32 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
15:49:32 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
15:49:32 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
15:49:32 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
15:49:32 Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to read /scratch/jenkins/workspace/master-sonar/atos-adapter/target/jacoco.exec
15:49:32 	at org.codehaus.mojo.sonar.bootstrap.ExceptionHandling.handle(ExceptionHandling.java:41)
15:49:32 	at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:139)
15:49:32 	at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:132)
15:49:32 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
15:49:32 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
15:49:32 	... 19 more
15:49:32 Caused by: org.sonar.api.utils.SonarException: Unable to read /scratch/jenkins/workspace/master-sonar/atos-adapter/target/jacoco.exec
15:49:32 	at org.sonar.plugins.jacoco.JaCoCoOverallSensor.loadSourceFiles(JaCoCoOverallSensor.java:123)
15:49:32 	at org.sonar.plugins.jacoco.JaCoCoOverallSensor.mergeReports(JaCoCoOverallSensor.java:96)
15:49:32 	at org.sonar.plugins.jacoco.JaCoCoOverallSensor.analyse(JaCoCoOverallSensor.java:87)
15:49:32 	at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:79)
15:49:32 	at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70)
15:49:32 	at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:131)
15:49:32 	at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:178)
15:49:32 	at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
15:49:32 	at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
15:49:32 	at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:199)
15:49:32 	at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:194)
15:49:32 	at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:192)
15:49:32 	at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:187)
15:49:32 	at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
15:49:32 	at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
15:49:32 	at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:56)
15:49:32 	at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:44)
15:49:32 	at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:82)
15:49:32 	at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
15:49:32 	at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
15:49:32 	at org.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:175)
15:49:32 	at org.sonar.batch.bootstrap.BootstrapContainer.doAfterStart(BootstrapContainer.java:163)
15:49:32 	at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
15:49:32 	at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
15:49:32 	at org.sonar.batch.bootstrapper.Batch.startBatch(Batch.java:92)
15:49:32 	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:74)
15:49:32 	at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
15:49:32 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
15:49:32 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
15:49:32 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
15:49:32 	at java.lang.reflect.Method.invoke(Method.java:497)
15:49:32 	at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
15:49:32 	at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
15:49:32 	at java.security.AccessController.doPrivileged(Native Method)
15:49:32 	at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
15:49:32 	at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
15:49:32 	at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
15:49:32 	at org.sonar.runner.api.Runner.execute(Runner.java:100)
15:49:32 	at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:135)
15:49:32 	... 22 more
15:49:32 Caused by: java.io.IOException: Incompatible version 1007.
15:49:32 	at org.jacoco.core.data.ExecutionDataReader.readHeader(ExecutionDataReader.java:127)
15:49:32 	at org.jacoco.core.data.ExecutionDataReader.readBlock(ExecutionDataReader.java:107)
15:49:32 	at org.jacoco.core.data.ExecutionDataReader.read(ExecutionDataReader.java:87)
15:49:32 	at org.sonar.plugins.jacoco.JaCoCoOverallSensor.loadSourceFiles(JaCoCoOverallSensor.java:121)
15:49:32 	... 60 more

Environment

Solution

This problems comes from an incompatibility in jacoco data produced by your build in version 0.7.5 that SonarQube cannot read with Jacoco 0.7.4. More details:

To fix the issue you need to generate your coverage data with Jacoco 0.7.4.

If you are using Apache Maven to produce them replace

org.jacoco:jacoco-maven-plugin:prepare-agent

``by

org.jacoco:jacoco-maven-plugin:0.7.4.201502262128:prepare-agent

This article is part of our Knowledge Base and is provided for guidance-based purposes only. The solutions or workarounds described here are not officially supported by CloudBees and may not be applicable in all environments. Use at your own discretion, and test changes in a safe environment before applying them to production systems.