Idean / sonar-swift

Open source Swift plugin for SonarQube (also supports Objective-C)
Other
895 stars 278 forks source link

Line number must be strictly positive: 0 #257

Open yurll opened 4 years ago

yurll commented 4 years ago

Issue Description

Error while running sonar scanner with sonar-swift plugin enabled. the file run-sonar-swift.sh is the latest.

Command executed

run-sonar-swift.sh

building with an additional parameter: buildCmd+=(-UseModernBuildSystem=NO)

Complete output when running fastlane, including the stack trace and command used
 
0.4.5 throws the following error:

INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 26.634s
INFO: Final Memory: 12M/50M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
WARNING: All illegal access operations will be denied in a future release
....ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Line number must be strictly positive: 0
        at org.sonar.api.internal.google.common.base.Preconditions.checkState(Preconditions.java:197)
        at org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage.validateLine(DefaultCoverage.java:94)
        at org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage.lineHits(DefaultCoverage.java:81)
        at com.backelite.sonarqube.swift.coverage.CoberturaReportParser.collectFileData(CoberturaReportParser.java:109)
        at com.backelite.sonarqube.swift.coverage.CoberturaReportParser.collectClassMeasures(CoberturaReportParser.java:91)
        at com.backelite.sonarqube.swift.coverage.CoberturaReportParser.collectPackageMeasures(CoberturaReportParser.java:79)
        at com.backelite.sonarqube.swift.coverage.CoberturaReportParser.parseReport(CoberturaReportParser.java:61)
        at com.backelite.sonarqube.swift.coverage.CoberturaSensor.execute(CoberturaSensor.java:69)
        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:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:400)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:395)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:358)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
        at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
        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:112)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
ERROR - Command 'sonar-scanner ' failed with error code: 1

 

Environment

 
INFO: SonarQube Scanner 4.2.0.1873
INFO: Java 11.0.3 AdoptOpenJDK (64-bit)
INFO: Mac OS X 10.14.5 x86_64

Plugin version: latest: 0.4.5
 
sebastianpetri commented 4 years ago

The error has already been discussed here: https://github.com/Backelite/sonar-swift/issues/212 But the bug has solved another problem. We have the same problem as you right now.

sashi01 commented 4 years ago

Same here :

SonarQube 7.9.2 SonarScanner 4.2.0 sonar-swift 0.4.6

ERROR: Error during SonarQube Scanner execution java.lang.IllegalStateException: Line number must be strictly positive: 0 at org.sonar.api.internal.google.common.base.Preconditions.checkState(Preconditions.java:197) at org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage.validateLine(DefaultCoverage.java:94) at org.sonar.api.batch.sensor.coverage.internal.DefaultCoverage.lineHits(DefaultCoverage.java:81) at com.backelite.sonarqube.swift.coverage.CoberturaReportParser.collectFileData(CoberturaReportParser.java:109) at com.backelite.sonarqube.swift.coverage.CoberturaReportParser.collectClassMeasures(CoberturaReportParser.java:91) at com.backelite.sonarqube.swift.coverage.CoberturaReportParser.collectPackageMeasures(CoberturaReportParser.java:79) at com.backelite.sonarqube.swift.coverage.CoberturaReportParser.parseReport(CoberturaReportParser.java:61) at com.backelite.sonarqube.swift.coverage.CoberturaSensor.execute(CoberturaSensor.java:69) 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:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:400) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:395) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:358) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73) at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67) 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:112) at org.sonarsource.scanner.cli.Main.execute(Main.java:75) at org.sonarsource.scanner.cli.Main.main(Main.java:61) ERROR:

yurll commented 4 years ago

Hi, switched from Ubuntu to macOS environment: server: System Version: macOS 10.14.5 (18F132) Kernel Version: Darwin 18.6.0

SonarQube: 8.2.0 SonarScanner: 4.2.0.1873 Sonar-Swift: 0.4.6

The issue still here.

Please note again, that we still use an additional build parameter: -UseModernBuildSystem=NO

Maetschl commented 4 years ago

Same problem here.

SonarQube 7.9.2 (build 30863) SonarScanner 4.3.0.2102 Java 14 Oracle Corporation (64-bit) Mac OS X 10.15.3 x86_64

sebastianpetri commented 4 years ago

Apparently Cobertura does not get along with the extended Elvis operator with closures within an object inits.

we fix our problem by changing self.cellConfiguration = VerbindungsdetailsCellConfiguration( displayNotizenDetails: openNotizenDetails ?? { _ in }, openAktuelleAlternativeInfo: openAktuelleAlternativeInfo ?? { _ in }, openAufhebungFahrbindungInfo: openAufhebungFahrbindungInfo ?? { _ in }, .... to self.cellConfiguration = VerbindungsdetailsCellConfiguration( displayNotizenDetails: openNotizenDetails, openAktuelleAlternativeInfo: openAktuelleAlternativeInfo, openAufhebungFahrbindungInfo: openAufhebungFahrbindungInfo, ....

I hope this helps you with your problems. :)

carlos-evolutive commented 4 years ago

A quick, dirty fix for this is running this command:

sed -i.bak '/<line number="0"/d' ./sonar-reports/*.xml

Then run again: sonar-scanner -X

You can edit run-sonar-swift.sh, line 545 with:

# Filter buggy line 0 entries sed -i.bak '/<line number="0"/d' "sonar-reports/"*.xml

# Build sonar-runner / sonnar-scanner arguments

Well it works :-p

mejiagarcia commented 4 years ago

A quick, dirty fix for this is running this command:

sed -i.bak '/<line number="0"/d' ./sonar-reports/*.xml

Then run again: sonar-scanner -X

You can edit run-sonar-swift.sh, line 545 with:

# Filter buggy line 0 entries sed -i.bak '/<line number="0"/d' "sonar-reports/"*.xml

# Build sonar-runner / sonnar-scanner arguments

Well it works :-p

Thank you! you saved my life, i have had this problem since i upgraded to Catalina, in my case i put this line right before the run SonarQube scanner part.

sharmahimanshuaws commented 1 year ago

Error: LinkageError occurred while loading main class org.sonarsource.scanner.cli.Main java.lang.UnsupportedClassVersionError: org/sonarsource/scanner/cli/Main has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0 WARN: Unable to locate 'report-task.txt' in the workspace. Did the SonarScanner succeed? ERROR: SonarQube scanner exited with non-zero code: 1 Finished: FAILURE