0

When running SonarTS on Typescript files saved by VisualStudio 2015 all of them fail with the following error:

java.lang.IllegalArgumentException: 42 is not a valid line offset for pointer.

From this question it looks like this is an issue with file encoding. The file originally saved as UTF8. I've tried UTF-8-BOM, UTF-8 and ANSI using notepad++ to convert the files. All throw the same problem.

Has anyone else run into this issue?

Full Exception:

ERROR: Error during SonarQube Scanner execution
java.lang.IllegalArgumentException: Unable to register token in file [moduleKey=..., relative=src/app.module.ts, basedir=C:\...]
        at org.sonar.api.batch.sensor.cpd.internal.DefaultCpdTokens.addToken(DefaultCpdTokens.java:90)
        at org.sonar.plugin.typescript.ExternalTypescriptSensor.saveCpd(ExternalTypescriptSensor.java:204)
        at org.sonar.plugin.typescript.ExternalTypescriptSensor.analyze(ExternalTypescriptSensor.java:125)
        at org.sonar.plugin.typescript.ExternalTypescriptSensor.execute(ExternalTypescriptSensor.java:103)
        at org.sonar.batch.sensor.SensorWrapper.analyse(SensorWrapper.java:57)
        at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58)
        at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50)
        at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:83)
        at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241)
        at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236)
        at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:234)
        at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:226)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.batch.task.ScanTask.execute(ScanTask.java:47)
        at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106)
        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at 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:233)
        at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
        at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.IllegalArgumentException: 42 is not a valid line offset for pointer. File [moduleKey=..., relative=src/app.module.ts, basedir=C:\...] has 41 character(s) at line 1
        at org.sonar.api.internal.google.common.base.Preconditions.checkArgument(Preconditions.java:148)
        at org.sonar.api.batch.fs.internal.DefaultInputFile.checkValid(DefaultInputFile.java:218)
        at org.sonar.api.batch.fs.internal.DefaultInputFile.newPointer(DefaultInputFile.java:209)
        at org.sonar.api.batch.fs.internal.DefaultInputFile.newRange(DefaultInputFile.java:240)
        at org.sonar.api.batch.sensor.cpd.internal.DefaultCpdTokens.addToken(DefaultCpdTokens.java:88)
        ... 34 more
  • are you sure that when you save files UTF-8 (without BOM) it fails the same way? There is https://github.com/SonarSource/SonarTS/issues/266 which similar to yours. Btw more logs would help – Elena Vilchik Nov 09 '17 at 16:03
  • Yes its the same error message. I've edited with the error message we're getting. I'm assuming I should be using format UTF-8 (without BOM) ? – Fraser Connor Nov 09 '17 at 16:14
  • Can you attach ts file reproducing your problem? – Elena Vilchik Nov 10 '17 at 09:19
  • I've updated our SonarQube to latest and dropped all encoding files to UTF-8 (No BOM). They no work. I think this is simply an outdated software version. Thanks for the help! – Fraser Connor Nov 10 '17 at 10:57

2 Answers2

2

Updated SonarQube to latest and switched encoding to UTF-8 (Without BOM) now resolved.

0

In our case this error ocurred when we had a file with only one line in it and no blank lines after.

We added a carriage return and the error disappeared. We didn't need to change encoding.

housten
  • 21
  • 2