[ERROR]Maven multi module analysis failed with StackOverflowError

Must-share information (formatted with Markdown):

  • which versions are you using (SonarQube, Scanner, Plugin, and any relevant extension)

sonar-maven-plugin:3.9.1.2184
Apache Maven 3.9.1
Java version: 17.0.6, vendor: Eclipse Adoptium
OS name: “mac os x”, version: “13.4.1”, arch: “x86_64”, family: “mac”

  • what are you trying to achieve

I want to execute sonar analysis in a multimodule project. However, java.lang.StackOverflowError is thrown

Excerpt from logs:

Apache Maven 3.9.1 (2e178502fcdbffc201671fb2537d0cb4b4cc58f8)
Maven home: /opt/apache-maven-3.9.1
Java version: 17.0.6, vendor: Eclipse Adoptium, runtime: /Users/pawel_labaj/Library/Java/JavaVirtualMachines/temurin-17.0.6/Contents/Home
Default locale: en_PL, platform encoding: UTF-8
OS name: "mac os x", version: "13.4.1", arch: "x86_64", family: "mac"

(...)

[INFO] Reactor Build Order:
[INFO] 
[INFO] Auto Record                                                        [pom]
[INFO] extension-tests                                                    [jar]
[INFO] jacoco-aggregation                                                 [pom]
[DEBUG] Resolving plugin prefix sonar from [org.apache.maven.plugins, org.codehaus.mojo]
[DEBUG] Creating adapter using nameMapper 'gav' and factory 'rwlock-local'
[DEBUG] Resolved plugin prefix sonar to org.sonarsource.scanner.maven:sonar-maven-plugin from POM pl.com.labaj:auto-record:pom:2.0.1-SNAPSHOT
[DEBUG] === REACTOR BUILD PLAN ================================================
[DEBUG] Project: pl.com.labaj:auto-record:pom:2.0.1-SNAPSHOT
[DEBUG] Tasks:   [sonar:sonar]
[DEBUG] Style:   Aggregating

(...)

[DEBUG] Goal:          org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar (default-cli)
[DEBUG] Style:         Aggregating
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <mojoExecution default-value="${mojoExecution}"/>
  <session default-value="${session}"/>
  <skip default-value="false">${sonar.skip}</skip>
</configuration>

(...)

[DEBUG] 17:33:53.291 keyStore is : 
[DEBUG] 17:33:53.293 keyStore type is : pkcs12
[DEBUG] 17:33:53.293 keyStore provider is : 
[DEBUG] 17:33:53.293 init keystore
[DEBUG] 17:33:53.294 init keymanager of type SunX509
[DEBUG] 17:33:53.387 Create: /Users/pawel_labaj/.sonar/cache
[INFO] 17:33:53.388 User cache: /Users/pawel_labaj/.sonar/cache
[DEBUG] 17:33:53.388 Create: /Users/pawel_labaj/.sonar/cache/_tmp
[DEBUG] 17:33:53.391 Extract sonar-scanner-api-batch in temp...
[DEBUG] 17:33:53.394 Get bootstrap index...
[DEBUG] 17:33:53.395 Download: https://sonarcloud.io/batch/index
[DEBUG] 17:33:53.809 Get bootstrap completed
[DEBUG] 17:33:53.811 Create isolated classloader...
[DEBUG] 17:33:53.816 Start temp cleaning...
[DEBUG] 17:33:53.821 Temp cleaning done
[DEBUG] 17:33:53.821 Execution getVersion
[INFO] 17:33:53.834 SonarQube version: 8.0.0.44036

(...)

[INFO] 17:33:53.868 Module MavenProject: pl.com.labaj:jacoco-aggregation:2.0.1-SNAPSHOT @ /Users/pawel_labaj/PLa/dev/auto-record/modules/jacoco-aggregation/pom.xml skipped by property 'sonar.skip'
[INFO] 17:33:53.871 Default locale: "en_PL", source code encoding: "UTF-8"
[DEBUG] 17:33:53.872 Work directory: /Users/pawel_labaj/PLa/dev/auto-record/target/sonar
[DEBUG] 17:33:53.872 Execution execute
[DEBUG] 17:33:54.047 SonarCloud 9.16.0.560
[INFO] 17:33:54.339 Load global settings
[DEBUG] 17:33:54.589 GET 200 https://sonarcloud.io/api/settings/values.protobuf | time=247ms
[INFO] 17:33:54.609 Load global settings (done) | time=270ms
[INFO] 17:33:54.613 Server id: 1BD809FA-AWHW8ct9-T_TB3XqouNu
[INFO] 17:33:54.621 User cache: /Users/pawel_labaj/.sonar/cache
[INFO] 17:33:54.627 Load/download plugins
[INFO] 17:33:54.628 Load plugins index
[DEBUG] 17:33:54.848 GET 200 https://sonarcloud.io/api/plugins/installed | time=220ms
[INFO] 17:33:54.902 Load plugins index (done) | time=274ms
[INFO] 17:33:55.126 Load/download plugins (done) | time=499ms
[DEBUG] 17:33:55.290 Plugins:
[DEBUG] 17:33:55.290   * IaC Code Quality and Security 1.18.0.4757 (iac)
[DEBUG] 17:33:55.290   * PL/SQL Code Quality and Security 3.9.0.5181 (plsql)
[DEBUG] 17:33:55.290   * Scala Code Quality and Security 1.13.0.4374 (sonarscala)
[DEBUG] 17:33:55.290   * C# Code Quality and Security 9.5.0.73987 (csharp)
[DEBUG] 17:33:55.290   * Vulnerability Analysis 10.2.0-M1.21626 (security)
[DEBUG] 17:33:55.291   * Java Code Quality and Security 7.21.0.31796 (java)
[DEBUG] 17:33:55.291   * HTML Code Quality and Security 3.8.0.3510 (web)
[DEBUG] 17:33:55.291   * Flex Code Quality and Security 2.9.0.3375 (flex)
[DEBUG] 17:33:55.291   * XML Code Quality and Security 2.9.0.4055 (xml)
[DEBUG] 17:33:55.291   * Text Code Quality and Security 2.1.0.1163 (text)
[DEBUG] 17:33:55.291   * VB.NET Code Quality and Security 9.5.0.73987 (vbnet)
[DEBUG] 17:33:55.291   * Swift Code Quality and Security 4.9.0.5915 (swift)
[DEBUG] 17:33:55.291   * CFamily Code Quality and Security 6.46.1.62260 (cpp)
[DEBUG] 17:33:55.291   * Python Code Quality and Security 4.5.0.11949 (python)
[DEBUG] 17:33:55.291   * Dataflow Bug Detection Rules for Python 1.16.0.4300 (dbdpythonfrontend)
[DEBUG] 17:33:55.292   * Dataflow Bug Detection 1.16.0.4300 (dbd)
[DEBUG] 17:33:55.292   * Go Code Quality and Security 1.13.0.4374 (go)
[DEBUG] 17:33:55.292   * JaCoCo 1.3.0.1538 (jacoco)
[DEBUG] 17:33:55.292   * Kotlin Code Quality and Security 2.15.0.2579 (kotlin)
[DEBUG] 17:33:55.292   * Dataflow Bug Detection Rules for Java 1.16.0.4300 (dbdjavafrontend)
[DEBUG] 17:33:55.292   * T-SQL Code Quality and Security 1.9.0.5692 (tsql)
[DEBUG] 17:33:55.292   * Apex Code Quality and Security 1.13.0.4374 (sonarapex)
[DEBUG] 17:33:55.292   * JavaScript/TypeScript/CSS Code Quality and Security 10.3.2.22047 (javascript)
[DEBUG] 17:33:55.292   * Ruby Code Quality and Security 1.13.0.4374 (ruby)
[DEBUG] 17:33:55.292   * Vulnerability Rules for C# 10.2.0-M1.21626 (securitycsharpfrontend)
[DEBUG] 17:33:55.292   * Vulnerability Rules for Java 10.2.0-M1.21626 (securityjavafrontend)
[DEBUG] 17:33:55.293   * License for SonarLint 8.0.0.44036 (license)
[DEBUG] 17:33:55.293   * Vulnerability Rules for JS 10.2.0-M1.21626 (securityjsfrontend)
[DEBUG] 17:33:55.293   * COBOL Code Quality 5.4.0.6318 (cobol)
[DEBUG] 17:33:55.293   * Vulnerability Rules for Python 10.2.0-M1.21626 (securitypythonfrontend)
[DEBUG] 17:33:55.293   * PHP Code Quality and Security 3.30.0.9766 (php)
[DEBUG] 17:33:55.293   * ABAP Code Quality and Security 3.12.0.4303 (abap)
[DEBUG] 17:33:55.293   * Configuration detection fot Code Quality and Security 1.2.0.267 (config)
[DEBUG] 17:33:55.293   * Vulnerability Rules for PHP 10.2.0-M1.21626 (securityphpfrontend)
[DEBUG] 17:33:55.487 GET 200 https://sonarcloud.io/api/server/version | time=193ms
[DEBUG] 17:33:55.490 Updated analysis started with a difference of 30 milliseconds
[DEBUG] 17:33:55.496 Started at Wed Jul 19 17:33:54 CEST 2023
[INFO] 17:33:55.524 Loaded core extensions: developer-scanner
[DEBUG] 17:33:55.544 Installed core extension: com.sonarsource.branch.DeveloperScannerCoreExtension@69b3886f
[DEBUG] 17:33:56.039 Could not detect any CI vendor
[INFO] 17:33:56.050 Load project settings for component key: 'pawellabaj:auto-record'
[DEBUG] 17:33:56.264 GET 200 https://sonarcloud.io/api/settings/values.protobuf?component=pawellabaj%3Aauto-record | time=214ms
[INFO] 17:33:56.266 Load project settings for component key: 'pawellabaj:auto-record' (done) | time=216ms
[INFO] 17:33:56.272 Process project properties
[DEBUG] 17:33:56.283 Process project properties (done) | time=11ms
[INFO] 17:33:56.285 Execute project builders
[DEBUG] 17:33:56.285 Execute project builder: org.sonar.plugins.csharp.CSharpGlobalProtobufFileProcessor
[DEBUG] 17:33:56.286 Execute project builder: org.sonar.plugins.vbnet.VbNetGlobalProtobufFileProcessor
[INFO] 17:33:56.287 Execute project builders (done) | time=2ms
[INFO] 17:33:56.288 Project key: pawellabaj:auto-record
[INFO] 17:33:56.288 Base dir: /Users/pawel_labaj/PLa/dev/auto-record
[INFO] 17:33:56.288 Working dir: /Users/pawel_labaj/PLa/dev/auto-record/target/sonar
[DEBUG] 17:33:56.288 Project global encoding: UTF-8, default locale: en_PL
[DEBUG] 17:33:56.291 Creating module hierarchy
[DEBUG] 17:33:56.291   Init module 'Auto Record'
[DEBUG] 17:33:56.292     Base dir: /Users/pawel_labaj/PLa/dev/auto-record
[DEBUG] 17:33:56.292     Working dir: /Users/pawel_labaj/PLa/dev/auto-record/target/sonar
[DEBUG] 17:33:56.292     Module global encoding: UTF-8, default locale: en_PL
[DEBUG] 17:33:56.292   Init module 'extension-tests'
[DEBUG] 17:33:56.293     Base dir: /Users/pawel_labaj/PLa/dev/auto-record/modules/extension-tests
[DEBUG] 17:33:56.293     Working dir: /Users/pawel_labaj/PLa/dev/auto-record/modules/extension-tests/target/sonar
[DEBUG] 17:33:56.293     Module global encoding: UTF-8, default locale: en_PL
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for Auto Record 2.0.1-SNAPSHOT:
[INFO] 
[INFO] Auto Record ........................................ FAILURE [  3.536 s]
[INFO] extension-tests .................................... SKIPPED
[INFO] jacoco-aggregation ................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.895 s
[INFO] Finished at: 2023-07-19T17:33:56+02:00
[INFO] ------------------------------------------------------------------------
[DEBUG] Shutting down adapter factory; available factories [file-lock, rwlock-local, semaphore-local, noop]; available name mappers [discriminating, file-gav, file-hgav, file-static, gav, static]
[DEBUG] Shutting down 'file-lock' factory
[DEBUG] Shutting down 'rwlock-local' factory
[DEBUG] Shutting down 'semaphore-local' factory
[DEBUG] Shutting down 'noop' factory
---------------------------------------------------
constituent[0]: file:/opt/apache-maven-3.9.1/conf/logging/
constituent[1]: file:/opt/apache-maven-3.9.1/lib/maven-settings-3.9.1.jar
constituent[2]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-transport-file-1.9.7.jar
constituent[3]: file:/opt/apache-maven-3.9.1/lib/maven-model-3.9.1.jar
constituent[4]: file:/opt/apache-maven-3.9.1/lib/plexus-utils-3.5.1.jar
constituent[5]: file:/opt/apache-maven-3.9.1/lib/plexus-component-annotations-2.1.0.jar
constituent[6]: file:/opt/apache-maven-3.9.1/lib/plexus-sec-dispatcher-2.0.jar
constituent[7]: file:/opt/apache-maven-3.9.1/lib/httpcore-4.4.15.jar
constituent[8]: file:/opt/apache-maven-3.9.1/lib/slf4j-api-1.7.36.jar
constituent[9]: file:/opt/apache-maven-3.9.1/lib/aopalliance-1.0.jar
constituent[10]: file:/opt/apache-maven-3.9.1/lib/maven-model-builder-3.9.1.jar
constituent[11]: file:/opt/apache-maven-3.9.1/lib/javax.annotation-api-1.3.2.jar
constituent[12]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-connector-basic-1.9.7.jar
constituent[13]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-api-1.9.7.jar
constituent[14]: file:/opt/apache-maven-3.9.1/lib/maven-embedder-3.9.1.jar
constituent[15]: file:/opt/apache-maven-3.9.1/lib/wagon-http-3.5.3.jar
constituent[16]: file:/opt/apache-maven-3.9.1/lib/plexus-interpolation-1.26.jar
constituent[17]: file:/opt/apache-maven-3.9.1/lib/plexus-cipher-2.0.jar
constituent[18]: file:/opt/apache-maven-3.9.1/lib/maven-core-3.9.1.jar
constituent[19]: file:/opt/apache-maven-3.9.1/lib/guice-5.1.0.jar
constituent[20]: file:/opt/apache-maven-3.9.1/lib/failureaccess-1.0.1.jar
constituent[21]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-impl-1.9.7.jar
constituent[22]: file:/opt/apache-maven-3.9.1/lib/jcl-over-slf4j-1.7.36.jar
constituent[23]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-named-locks-1.9.7.jar
constituent[24]: file:/opt/apache-maven-3.9.1/lib/commons-cli-1.4.jar
constituent[25]: file:/opt/apache-maven-3.9.1/lib/maven-builder-support-3.9.1.jar
constituent[26]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-util-1.9.7.jar
constituent[27]: file:/opt/apache-maven-3.9.1/lib/org.eclipse.sisu.inject-0.3.5.jar
constituent[28]: file:/opt/apache-maven-3.9.1/lib/commons-codec-1.11.jar
constituent[29]: file:/opt/apache-maven-3.9.1/lib/wagon-file-3.5.3.jar
constituent[30]: file:/opt/apache-maven-3.9.1/lib/wagon-http-shared-3.5.3.jar
constituent[31]: file:/opt/apache-maven-3.9.1/lib/guava-30.1-jre.jar
constituent[32]: file:/opt/apache-maven-3.9.1/lib/maven-plugin-api-3.9.1.jar
constituent[33]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-transport-http-1.9.7.jar
constituent[34]: file:/opt/apache-maven-3.9.1/lib/maven-compat-3.9.1.jar
constituent[35]: file:/opt/apache-maven-3.9.1/lib/maven-shared-utils-3.3.4.jar
constituent[36]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-spi-1.9.7.jar
constituent[37]: file:/opt/apache-maven-3.9.1/lib/maven-settings-builder-3.9.1.jar
constituent[38]: file:/opt/apache-maven-3.9.1/lib/org.eclipse.sisu.plexus-0.3.5.jar
constituent[39]: file:/opt/apache-maven-3.9.1/lib/wagon-provider-api-3.5.3.jar
constituent[40]: file:/opt/apache-maven-3.9.1/lib/maven-repository-metadata-3.9.1.jar
constituent[41]: file:/opt/apache-maven-3.9.1/lib/maven-artifact-3.9.1.jar
constituent[42]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-provider-3.9.1.jar
constituent[43]: file:/opt/apache-maven-3.9.1/lib/maven-resolver-transport-wagon-1.9.7.jar
constituent[44]: file:/opt/apache-maven-3.9.1/lib/javax.inject-1.jar
constituent[45]: file:/opt/apache-maven-3.9.1/lib/httpclient-4.5.14.jar
constituent[46]: file:/opt/apache-maven-3.9.1/lib/commons-lang3-3.8.1.jar
constituent[47]: file:/opt/apache-maven-3.9.1/lib/jansi-2.4.0.jar
constituent[48]: file:/opt/apache-maven-3.9.1/lib/maven-slf4j-provider-3.9.1.jar
---------------------------------------------------
Exception in thread "main" java.lang.StackOverflowError
	at org.sonar.api.batch.fs.internal.DefaultInputComponent.hashCode(DefaultInputComponent.java:43)
	at java.base/java.util.HashMap.hash(HashMap.java:338)
	at java.base/java.util.HashMap.getNode(HashMap.java:568)
	at java.base/java.util.HashMap.getOrDefault(HashMap.java:1139)
	at java.base/java.util.Collections$UnmodifiableMap.getOrDefault(Collections.java:1548)
	at org.sonar.scanner.scan.DefaultInputModuleHierarchy.children(DefaultInputModuleHierarchy.java:56)
	at org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDirs(WorkDirectoriesInitializer.java:35)
	at org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDirs(WorkDirectoriesInitializer.java:36)
	at org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDirs(WorkDirectoriesInitializer.java:36)
	at org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDirs(WorkDirectoriesInitializer.java:36)
	at org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDirs(WorkDirectoriesInitializer.java:36)
	at org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDirs(WorkDirectoriesInitializer.java:36)
	at org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDirs(WorkDirectoriesInitializer.java:36)
	at org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDirs(WorkDirectoriesInitializer.java:36)

The last line is repeated until the end

It looks that recurrency in org.sonar.scanner.scan.WorkDirectoriesInitializer.cleanAllWorkingDir is not finishing.

Is it a bug or I need to configure something extra?

I’ve solved the issue.

In multimodule projects, you are not allowed to “hardcode” projectKey - it needs to be different in every module.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.