devcon5io / mutation-analysis-plugin

Plugin for SonarQube to process mutation analysis results.
GNU Lesser General Public License v3.0
30 stars 17 forks source link

Error during SonarQube Scanner execution java.lang.IllegalArgumentException: 0 is not a valid line for a file #39

Closed damorosodaragona closed 2 years ago

damorosodaragona commented 4 years ago

I'm using: pitest 1.4 + SonarQube latest + mutation-analysis-plugin latest = didn't work. It's normal? Just to know. I got this error:

Error during SonarQube Scanner execution
java.lang.IllegalArgumentException: 0 is not a valid line for a file
       at org.sonar.api.utils.Preconditions.checkArgument(Preconditions.java:43)
       at org.sonar.api.batch.fs.internal.DefaultInputFile.checkValid(DefaultInputFile.java:335)
       at org.sonar.api.batch.fs.internal.DefaultInputFile.newPointer(DefaultInputFile.java:272)
       at org.sonar.api.batch.fs.internal.DefaultInputFile.selectLine(DefaultInputFile.java:295)
       at ch.devcon5.sonar.plugins.mutationanalysis.sensors.RulesProcessor.applyMutantRule(RulesProcessor.java:205)
       at ch.devcon5.sonar.plugins.mutationanalysis.sensors.RulesProcessor.applyRule(RulesProcessor.java:117)
       at ch.devcon5.sonar.plugins.mutationanalysis.sensors.RulesProcessor.applyRules(RulesProcessor.java:99)
       at ch.devcon5.sonar.plugins.mutationanalysis.sensors.RulesProcessor.lambda$processRules$3(RulesProcessor.java:83)
       at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
       at java.base/java.util.stream.ReferencePipeline$2$1.accept(Unknown Source)
       at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(Unknown Source)
       at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
       at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
       at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
       at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
       at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
       at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
       at ch.devcon5.sonar.plugins.mutationanalysis.sensors.RulesProcessor.processRules(RulesProcessor.java:83)
       at ch.devcon5.sonar.plugins.mutationanalysis.sensors.PitestSensor.lambda$execute$1(PitestSensor.java:149)
       at java.base/java.util.ArrayList.forEach(Unknown Source)
       at ch.devcon5.sonar.plugins.mutationanalysis.sensors.PitestSensor.execute(PitestSensor.java:147)
       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:387)
       at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:383)
       at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:346)
       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:72)
       at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
       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)
gmuecke commented 4 years ago

Hi, which version of Sonarqube are you using? LATEST = 8.0 or 7.9 LTS?

And could you provide me a reproducer or at least the pitest xml report?

damorosodaragona commented 4 years ago

Hi, 8.0. But I found the problem: if you change your code without run Pitest analyses and then you try to upload the new code to sonar with a mutation quality profile activated, you got that error: because Pit analyses points to a lines of code that in new Java classes doesn’t exist anymore.