Skip to content

[Bug] SonarScanner errors out due an exception in sonar-swift plugin when source path has a space #208

@Kiran-B

Description

@Kiran-B

Describe the bug
SonarScanner errors out due an exception in sonar-swift plugin when source path has a space.

To Reproduce
Steps to reproduce the behavior:
Analyze an Xcode project with a space in its path. An example code structure:

  • MyProject.xcodeproj
  • My Project
    • Project Sources
      • AppDelegate.swift

Expected behavior
The analysis should complete and results should be published to Sonarqube.

SonarQube environment:

  • OS: MacOS
  • sonar-swift: v0.4.4
  • SonarQube: 7.6.0.21501
  • Lizard: 1.16.3

Additional context
Following is the exception:

ERROR: Error during SonarQube Scanner execution
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.substring(String.java:1967)
	at com.backelite.sonarqube.swift.complexity.LizardReportParser$SwiftFunction.<init>(LizardReportParser.java:181)
	at com.backelite.sonarqube.swift.complexity.LizardReportParser.parseMeasure(LizardReportParser.java:120)
	at com.backelite.sonarqube.swift.complexity.LizardReportParser.parseFile(LizardReportParser.java:88)

Probable root-cause is the following code, which assumes that there would not be a path in space:
https://github.com/Backelite/sonar-swift/blob/42831ead6a8e838fe5db28b0430c77209b72603f/sonar-swift-plugin/src/main/java/com/backelite/sonarqube/swift/complexity/LizardReportParser.java#L178-L181

When the path includes space the name would include a string similar to :

applicationDidEnterBackground(...) at ./My Project/Project Sources/AppDelegate.swift:27

So at Line 181, val2 would likely have the value ./My instead of complete path and thus it would not find the : it is seeking.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions