Site folder not created in jenkins build and sonar code coverage is showing 0%

I am working with sonarqube Version 8.9 (build 43852) and Jenkins 2.289.3. The sonar code coverage is 0% when building from jenkins, but it works fine when I run the same maven command in local and shows code coverage. In jenkins build, the site folder is not getting created and when build in local I can see the site folder with jacoco report.

Not sure why jenkins build is unable to create site folder.Will really appreciate any help on this?

In jenkins after running the maven sonar command I can see this error which in not there in local.

[ERROR] Unable to run check class org.sonar.java.checks.spring.PersistentEntityUsedAsRequestParameterCheck - S4684 on file 'src/main/java/com/myProject/MyClassAPIErrorMapping.java', To help improve the SonarSource Java Analyzer, please report this problem to SonarSource: see https://community.sonarsource.com/
java.lang.NullPointerException: null
	at org.eclipse.jdt.core.dom.MethodBinding.filterTypeAnnotations(MethodBinding.java:244)
	at org.eclipse.jdt.core.dom.MethodBinding.getAnnotations(MethodBinding.java:133)
	at org.sonar.java.model.JSymbol.convertMetadata(JSymbol.java:354)
	at org.sonar.java.model.JSymbol.metadata(JSymbol.java:334)
	at org.sonar.java.checks.spring.PersistentEntityUsedAsRequestParameterCheck.isRequestMappingAnnotated(PersistentEntityUsedAsRequestParameterCheck.java:69)
	at org.sonar.java.checks.spring.PersistentEntityUsedAsRequestParameterCheck.visitNode(PersistentEntityUsedAsRequestParameterCheck.java:60)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.lambda$visit$6(VisitorsBridge.java:287)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.lambda$forEach$9(VisitorsBridge.java:303)
	at org.sonar.java.model.VisitorsBridge.runScanner(VisitorsBridge.java:159)
	at org.sonar.java.model.VisitorsBridge.access$100(VisitorsBridge.java:62)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.forEach(VisitorsBridge.java:303)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:289)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visitChildren(VisitorsBridge.java:273)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:293)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visitChildren(VisitorsBridge.java:273)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.visit(VisitorsBridge.java:293)
	at org.sonar.java.model.VisitorsBridge$IssuableSubsciptionVisitorsRunner.run(VisitorsBridge.java:264)
	at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:139)
	at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:127)
	at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:79)
	at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:130)
	at org.sonar.java.JavaSquid.scan(JavaSquid.java:116)
	at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:105)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:392)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:388)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:357)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:150)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	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:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
	at com.sun.proxy.$Proxy28.execute(Unknown Source)
	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:185)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:137)
	at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:65)
	at org.sonarsource.scanner.maven.SonarQubeMojo.execute(SonarQubeMojo.java:104)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
	at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:190)
	at org.apache.maven.lifecycle.internal.builder.multithreaded.MultiThreadedBuilder$1.call(MultiThreadedBuilder.java:186)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	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)

Hi @sana1,

This NullPointerException seems to be a known bug that has been improved by SONARJAVA-3872 in the java analyzer 7.2 that is part of SonarQube 9.1. You should perhaps exclude the impacted source file from the analysis while waiting to update SonarQube.

1 Like

Hi @alban.auzeill,
Thanks for your reply, as you suggested I have excluded the impacted source file and the exception is gone now. But in the sonarqube, the code coverage is still showing 0% and the jenkins build is still not creating the site folder.