SonarQube gradle plugin 6.1.0.5360 producing UnsupportedOperationException

Running SonarQube gradle plugin version 6.0.0.5360 with Gradle 8.13 and JDK 21.

DBD analysis error: Failed to analyze org.apereo.cas.util.CollectionUtils#wrap(Lcom/google/common/collect/Multimap;)Ljava/util/Map; due to an exception; skipping.
java.lang.UnsupportedOperationException: null
        at org.sonar.api.batch.sensor.issue.internal.DefaultIssueLocation.newMessageFormatting(DefaultIssueLocation.java:97)
        at com.sonarsource.A.A.A.A.A.A(na:867)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
        at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(Unknown Source)
        at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
        at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
        at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(Unknown Source)
        at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
        at java.base/java.util.stream.ReferencePipeline.toArray(Unknown Source)
        at java.base/java.util.stream.ReferencePipeline.toList(Unknown Source)
        at com.sonarsource.A.A.A.A.A.A(na:1019)
        at com.sonarsource.A.A.A.C.F$_A.A(na:3100)
        at com.sonarsource.A.B.D.G.A(na:669)
        at com.sonarsource.A.B.D.G.A(na:3099)
        at com.sonarsource.A.B.D.C.A(na:608)
        at com.sonarsource.A.B.F.A.G.F(na:462)
        at com.sonarsource.A.B.F.A.G.A(na:3471)
        at com.sonarsource.A.B.W.C(na:204)
        at com.sonarsource.A.B.W.A(na:196)
        at com.sonarsource.A.B.W.A(na:3509)
        at com.sonarsource.A.B.W.A(na:2966)
        at com.sonarsource.A.A.A.C.F.executeChecksOnFunction(na:163)
        at com.sonarsource.A.A.A.C.F.A(na:1030)
        at com.sonarsource.A.A.A.C.F.executeChecks(na:332)
        at com.sonarsource.A.A.A.C.F.executeSensor(na:2224)
        at com.sonarsource.A.A.A.C.F.execute(na:2887)
        at com.sonarsource.A.G.execute(na:362)
        at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:63)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:75)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:51)
        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:64)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:190)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:186)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:157)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
        at org.sonar.scanner.bootstrap.ScannerContainer.doAfterStart(ScannerContainer.java:414)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
        at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:128)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:123)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:109)
        at org.sonar.scanner.bootstrap.ScannerMain.runScannerEngine(ScannerMain.java:137)
        at org.sonar.scanner.bootstrap.ScannerMain.run(ScannerMain.java:52)
        at org.sonar.scanner.bootstrap.ScannerMain.main(ScannerMain.java:38)

The actual task that is running is:

./gradlew sonar --build-cache --configure-on-demand --no-daemon --parallel \
    -x javadoc -Dsonar.coverage.jacoco.xmlReportPaths=path/to/file.xml

The gradle configuration block is:

sonar {
        def exclusions = rootProject.excludedFilesFromTestCoverage.join(",")
        def token = providers.systemProperty("SONARCLOUD_TOKEN")
                .getOrElse(System.getenv("SONARCLOUD_TOKEN"))
        properties {
            property "sonar.host.url", "https://sonarcloud.io"
            property "sonar.projectName", "cas"
            property "sonar.sourceEncoding", "UTF-8"
            property "sonar.java.source", project.targetCompatibility
            property "sonar.organization", "apereo"
            property "sonar.token", token
            property "sonar.gradle.skipCompile", true
            property "sonar.coverage.exclusions", exclusions
            property "sonar.java.coveragePlugin", "jacoco"
        }
    }

It might be useful to note that the build does finish successfully.

If you need additional details, please let me know.

Hello @mmoayyed ,

Thank you for taking the time to report this issue, and sorry for replying so late. With the information you provided, we have identified the problem and found a solution. I will update you when the fix is deployed on SonarQube Cloud.

In the meantime, you don’t have to worry too much about this error. The consequences on the analysis are relatively minor; a dozen of rules won’t report issues on this particular function only.

Best,
Sylvain