Sensor Import external issues report - not a valid line offset for pointer

Sonar server community 2024.12.

I’ve a file with the external report in format aligned with doc

{
  "rules": [
    {
      "id": "W213",
      "name": "Unused loop variable",
      "description": "Loop variable is unused in loop body",
      "engineId": "luacheck",
      "cleanCodeAttribute": "FOCUSED",
      "type": "CODE_SMELL",
      "severity": "MINOR",
      "impacts": [
        {
          "softwareQuality": "MAINTAINABILITY",
          "severity": "MEDIUM"
        }
      ]
    },
    {
      "id": "W211",
      "name": "Unused variable",
      "description": "Variable is declared but not used",
      "engineId": "luacheck",
      "cleanCodeAttribute": "FOCUSED",
      "type": "CODE_SMELL",
      "severity": "MINOR",
      "impacts": [
        {
          "softwareQuality": "MAINTAINABILITY",
          "severity": "MEDIUM"
        }
      ]
    },
...
,
    {
      "id": "W613",
      "name": "Lua issue W613",
      "description": "Generic Lua issue",
      "engineId": "luacheck",
      "cleanCodeAttribute": "CONVENTIONAL",
      "type": "CODE_SMELL",
      "severity": "MINOR",
      "impacts": [
        {
          "softwareQuality": "MAINTAINABILITY",
          "severity": "MEDIUM"
        }
      ]
    }
  ],
  "issues": [
    {
      "ruleId": "W213",
      "effortMinutes": 5,
      "primaryLocation": {
        "message": "(W213) unused loop variable 'i'",
        "filePath": "luacheck_json_runner.lua",
        "textRange": {
          "startLine": 8,
          "startColumn": 9,
          "endLine": 8,
          "endColumn": 10
        }
      }
    },
    {
      "ruleId": "W211",
      "effortMinutes": 5,
      "primaryLocation": {
        "message": "(W211) unused function 'generate_id'",
        "filePath": "luacheck_json_runner.lua",
        "textRange": {
          "startLine": 32,
          "startColumn": 16,
          "endLine": 32,
          "endColumn": 26
        }
      }
    },
    {
      "ruleId": "W631",
      "effortMinutes": 5,
      "primaryLocation": {
        "message": "(W631) line is too long (150 > 120)",
        "filePath": "luacheck_json_runner.lua",
        "textRange": {
          "startLine": 84,
          "startColumn": 121,
          "endLine": 84,
          "endColumn": 150
        }
      }
    }

This is a formated luacheck output. Adding it to analysis

 sonar-scanner \
  -Dsonar.projectKey=HC:hc-client \
  -Dsonar.sources=. \
  -Dsonar.host.url=https://URL/ \
  -Dsonar.exclusions='**/*.java' \
  -Dsonar.token=sqa_6e5xxxxxxx \
  -Dsonar.externalIssuesReportPaths=sonarqube_issues-small.json \
  -Dsonar.sensor.cache.enable=false

cause error

13:40:07.806 INFO  Sensor Import external issues report
13:40:07.953 ERROR Error during SonarScanner Engine execution
java.lang.IllegalArgumentException: 122 is not a valid line offset for pointer. File res-dev/assignments/preview_provider.lua has 121 character(s) at line 146
	at org.sonar.api.utils.Preconditions.checkArgument(Preconditions.java:43)
	at org.sonar.api.batch.fs.internal.DefaultInputFile.checkValid(DefaultInputFile.java:374)
	at org.sonar.api.batch.fs.internal.DefaultInputFile.newPointer(DefaultInputFile.java:307)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.fillLocation(ExternalIssueImporter.java:203)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.populateCommonValues(ExternalIssueImporter.java:123)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.importIssue(ExternalIssueImporter.java:161)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.importNewFormat(ExternalIssueImporter.java:92)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.execute(ExternalIssueImporter.java:65)
	at org.sonar.scanner.externalissue.ExternalIssuesImportSensor.execute(ExternalIssuesImportSensor.java:75)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:64)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:61)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:79)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:61)
	at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:82)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:226)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:205)
	at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:201)
	at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:197)
	at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:170)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:226)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:205)
	at org.sonar.scanner.bootstrap.SpringScannerContainer.doAfterStart(SpringScannerContainer.java:355)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:226)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:205)
	at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:144)
	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:226)
	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:205)
	at org.sonar.scanner.bootstrap.ScannerMain.runScannerEngine(ScannerMain.java:149)
	at org.sonar.scanner.bootstrap.ScannerMain.run(ScannerMain.java:66)
	at org.sonar.scanner.bootstrap.ScannerMain.main(ScannerMain.java:52)

13:40:08.359 INFO  EXECUTION FAILURE

Regarding this file
I’ve many results with issue length of lines ie.

   {
      "ruleId": "W631",
      "effortMinutes": 5,
      "primaryLocation": {
        "message": "(W631) line is too long (151 > 120)",
        "filePath": "res-dev/assignments/preview_provider.lua",
        "textRange": {
          "startLine": 74,
          "startColumn": 121,
          "endLine": 74,
          "endColumn": 151
        }
      }
    },
    {
      "ruleId": "W113",
      "effortMinutes": 5,
      "primaryLocation": {
        "message": "(W113) accessing undefined variable 'MergeTables'",
        "filePath": "res-dev/assignments/preview_provider.lua",
        "textRange": {
          "startLine": 78,
          "startColumn": 56,
          "endLine": 78,
          "endColumn": 66
        }
      }
    },
    {
      "ruleId": "W631",
      "effortMinutes": 5,
      "primaryLocation": {
        "message": "(W631) line is too long (185 > 120)",
        "filePath": "res-dev/assignments/preview_provider.lua",
        "textRange": {
          "startLine": 78,
          "startColumn": 121,
          "endLine": 78,
          "endColumn": 185
        }
      }
    },
    {
      "ruleId": "W631",
      "effortMinutes": 5,
      "primaryLocation": {
        "message": "(W631) line is too long (151 > 120)",
        "filePath": "res-dev/assignments/preview_provider.lua",
        "textRange": {
          "startLine": 81,
          "startColumn": 121,
          "endLine": 81,
          "endColumn": 151
        }
      }
    }

Tried to modify values of endColumn by +1 from actual line length - no progress. The actual length - no progress.

What’s wrong - what can I change?

OK I’ve figured out how to address the issue after lecture of the Externalissue: Do not assume endColumn if start column is given
Instead of endColumn by +1 I’ve used “final_start_column = col_start - 1 if col_start == col_end else col_start”

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