Invalid line offset for pointer for external reports

Hello, we are getting errors with our external phpcs report using bitbucket pipelines.

The phpcs-report.json is reporting a valid issue but sonarcloud is unable to handle it.

Heres the error:

java.lang.IllegalArgumentException: 1 is not a valid line offset for pointer. File <file> has 0 character(s) at line 30
	at org.sonar.api.utils.Preconditions.checkArgument(Preconditions.java:43)
	at org.sonar.api.batch.fs.internal.DefaultInputFile.checkValid(DefaultInputFile.java:338)
	at org.sonar.api.batch.fs.internal.DefaultInputFile.newPointer(DefaultInputFile.java:271)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.fillLocation(ExternalIssueImporter.java:213)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.populateCommonValues(ExternalIssueImporter.java:129)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.importIssue(ExternalIssueImporter.java:167)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.importCctFormat(ExternalIssueImporter.java:91)
	at org.sonar.scanner.externalissue.ExternalIssueImporter.execute(ExternalIssueImporter.java:48)
	at org.sonar.scanner.externalissue.ExternalIssuesImportSensor.execute(ExternalIssuesImportSensor.java:59)
	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.lambda$execute$1(ModuleSensorsExecutor.java:48)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:66)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:48)
	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:416)
	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)

I’ve read other similar issues and but have not yet found anything that works.
I have tried so far:

  • Added sonar.sourceEncoding=UTF-8
  • Tried different sonarcloud-scan versions
  • Removed caching

Any ideas on how to fix the issue or anything we can do on our end?
Thanks!

Hey there.

Does this file actually have any content at line 30?

No, it’s empty line and PHP Code Sniffer is reporting it’s a standard issue and should be removed. I was not expecting SonarCloud to thrown an error because of it. Instead I am hoping SonarCloud show that as an issue on the dashboard.

Example code:

$myvar = 1;
// Two empty lines coming instead of 1.


$anothervar = 1;

Thanks!

The issue here is that as far as SonarQube Cloud is concerned, Line 30 doesn’t have a column 1. It’s an empty line, like you said.

As noted in the docs:

startColumn must not be specified for empty lines.

So probably, you should raise an issue with PHP Code Sniffer, or whatever tool is converting the report to the generic issue format.