Sonar Scanner NullPointerException error

Must-share information (formatted with Markdown):

  • which versions are you using (SonarQube, Scanner, Plugin, and any relevant extension)
  • how is SonarQube deployed: zip, Docker, Helm
  • what are you trying to achieve
  • what have you tried so far to achieve this

Do not share screenshots of logs – share the text itself (bonus points for being well-formatted)!

Hi folks,

I’m getting a Sonar Scanner error that I’m not sure how to read or solve, but it’s causing the scan/analysis to fail.

First, though, answers to questions:

  • SonarQube server version: 9.9.0.65466 (developer)
  • SonarScanner version: 4.8.0.2856
  • SonarQube is deployed on a local server via ZIP

I’m trying to scan a local repository, and am getting the following SonarScanner execution error:

07:54:40.157 INFO: Project root configuration file: NONE
07:54:40.176 INFO: SonarScanner 4.8.0.2856
07:54:40.176 INFO: Java 11.0.17 Eclipse Adoptium (64-bit)
07:54:40.176 INFO: Linux 5.4.0-146-generic amd64
<snip>
07:54:40.454 INFO: Analyzing on SonarQube server 9.9.0.65466
<snip>
07:54:44.701 DEBUG: 'tsconfig.doc.json' indexed with language 'json'
07:54:44.732 INFO: ------------------------------------------------------------------------
07:54:44.733 INFO: EXECUTION FAILURE
07:54:44.733 INFO: ------------------------------------------------------------------------
07:54:44.733 INFO: Total time: 4.595s
07:54:44.762 INFO: Final Memory: 16M/57M
07:54:44.763 INFO: ------------------------------------------------------------------------
07:54:44.763 ERROR: Error during SonarScanner execution
java.lang.NullPointerException
        at org.sonar.api.batch.fs.internal.DefaultIndexedFile.hashCode(DefaultIndexedFile.java:161)
        at org.sonar.api.batch.fs.internal.DefaultInputFile.hashCode(DefaultInputFile.java:216)
        at java.base/java.util.HashMap.hash(Unknown Source)
        at java.base/java.util.HashMap.put(Unknown Source)
        at org.sonar.scanner.scan.filesystem.InputComponentStore.put(InputComponentStore.java:115)
        at org.sonar.scanner.scan.filesystem.FileIndexer.indexFile(FileIndexer.java:156)
        at org.sonar.scanner.scan.filesystem.ProjectFileIndexer$IndexFileVisitor.visitFile(ProjectFileIndexer.java:274)
        at org.sonar.scanner.scan.filesystem.ProjectFileIndexer$IndexFileVisitor.visitFile(ProjectFileIndexer.java:246)
        at java.base/java.nio.file.Files.walkFileTree(Unknown Source)
        at org.sonar.scanner.scan.filesystem.ProjectFileIndexer.indexDirectory(ProjectFileIndexer.java:221)
        at org.sonar.scanner.scan.filesystem.ProjectFileIndexer.indexFiles(ProjectFileIndexer.java:207)
        at org.sonar.scanner.scan.filesystem.ProjectFileIndexer.index(ProjectFileIndexer.java:169)
        at org.sonar.scanner.scan.filesystem.ProjectFileIndexer.indexModulesRecursively(ProjectFileIndexer.java:148)
        at org.sonar.scanner.scan.filesystem.ProjectFileIndexer.index(ProjectFileIndexer.java:115)
        at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:363)
        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(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.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.cli.Main.execute(Main.java:126)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:81)
        at org.sonarsource.scanner.cli.Main.main(Main.java:62)

This has not always been a problem; I last successfully performed a scan 26 days ago. Ever since then, though, I’ve been getting NullPointerException errors.

Help? I don’t know what’s causing the error or how to resolve the issue.

Hello,

Thanks for reaching out on this issue. I investigated it and the likely cause of this problem is that the scanner is trying to index a file that is not a descendant of the base project. This case should not be possible and I’m not sure what could be triggering it.
I’ve created a ticket to handle the case explicitly and add logging information to help find the source of the problem.
In the meantime, it would help us greatly if you were able to find the source on your project with the information I gave you, or provide us with a way to reproduce it. Thanks.