Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

String index out of range: -1 when parsing test report #49

Open
xiezhenye opened this issue Dec 21, 2017 · 8 comments
Open

String index out of range: -1 when parsing test report #49

xiezhenye opened this issue Dec 21, 2017 · 8 comments

Comments

@xiezhenye
Copy link

Description

Got java.io.FileNotFoundException, but the path of report.xml exists.

Steps to Reproduce

  1. Run sonar-scanner

Content of your sonar-project.properties

sonar.host.url=http://10.*.*.*:*
sonar.login=***
sonar.password=***
sonar.language=go
sonar.projectKey=march
sonar.projectName=March
sonar.projectVersion=1.0
sonar.golint.reportPath=report.xml #default
sonar.coverage.reportPath=coverage.xml # default
sonar.coverage.dtdVerification=false # if you want disabled the DTD verification for a proxy problem for example
sonar.test.reportPath=test.xml #default
sonar.sources=./src/march

Log of sonar-scanner related to the plugin

...
INFO: Parsing 'GoMetaLinter' Analysis Results
ERROR: IOException
java.io.FileNotFoundException: /Users/xiezhenye/Documents/work/xzy/march/report.xml #default (No such file or directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
	at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:226)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.parseAndSaveResults(GoLintIssueLoaderSensor.java:136)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.execute(GoLintIssueLoaderSensor.java:121)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:179)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:261)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:256)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:245)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:119)
	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	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)

ERROR: Unable to parse the provided GoMetaLinter file
javax.xml.stream.XMLStreamException: java.io.FileNotFoundException: /Users/xiezhenye/Documents/work/xzy/march/report.xml #default (No such file or directory)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:263)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.parseAndSaveResults(GoLintIssueLoaderSensor.java:136)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor.execute(GoLintIssueLoaderSensor.java:121)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:179)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:261)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:256)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:245)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:119)
	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	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.io.FileNotFoundException: /Users/xiezhenye/Documents/work/xzy/march/report.xml #default (No such file or directory)
	at java.io.FileInputStream.open0(Native Method)
	at java.io.FileInputStream.open(FileInputStream.java:195)
	at java.io.FileInputStream.<init>(FileInputStream.java:138)
	at java.io.FileInputStream.<init>(FileInputStream.java:93)
	at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
	at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:623)
	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
	at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)
	at fr.univartois.sonargo.core.rules.GoLintIssueLoaderSensor$GoLintResultParser.parse(GoLintIssueLoaderSensor.java:226)
	... 33 common frames omitted

Versions

Versions of your sonar installation (server, sonar-scanner), gometalinter, go and OS.
sonar-golang v1.2.11-rc7
SonarQube Scanner 3.0.3.778
Java 1.8.0_73 Oracle Corporation (64-bit)
Mac OS X 10.13.2 x86_64
go 1.9.1

Additional Information

The file /Users/xiezhenye/Documents/work/xzy/march/report.xml is really exists.

$ ls -l /Users/xiezhenye/Documents/work/xzy/march/report.xml
-rw-r--r--  1 xiezhenye  staff  54039 12 21 16:49 /Users/xiezhenye/Documents/work/xzy/march/report.xml

@xiezhenye
Copy link
Author

It seems properties file can not contains comments, after remove comments, this Exception not occurs. But I got another Exception:

INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 7.844s
INFO: Final Memory: 48M/264M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.substring(String.java:1960)
	at fr.univartois.sonargo.gotest.FunctionFinder.searchInLine(FunctionFinder.java:72)
	at fr.univartois.sonargo.gotest.FunctionFinder.lambda$searchFunctionInFile$2(FunctionFinder.java:41)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at fr.univartois.sonargo.gotest.FunctionFinder.searchFunctionInFile(FunctionFinder.java:40)
	at fr.univartois.sonargo.gotest.FunctionFinder.lambda$searchFunction$1(FunctionFinder.java:30)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at fr.univartois.sonargo.gotest.FunctionFinder.searchFunction(FunctionFinder.java:28)
	at fr.univartois.sonargo.gotest.GoTestSensor.execute(GoTestSensor.java:61)
	at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
	at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
	at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
	at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:179)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:261)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:256)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:245)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
	at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129)
	at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:119)
	at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	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)
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

danielleberre added a commit that referenced this issue Dec 23, 2017
To avoid issues like #49 with # at the end of a line, made comments in a single line.
@danielleberre
Copy link
Contributor

@xiezhenye the first issue you noticed was related to the comments we added in the properties file
to explain the values of the properties.

We updated the README to make comments compatible with Java properties file.

The second issue is different. I renamed the current issue with that problem.

@danielleberre danielleberre changed the title Got java.io.FileNotFoundException for report.xml, but the path exists. String index out of range: -1 when parsing test report Dec 23, 2017
@thibaultfalque
Copy link
Collaborator

The plugin can not recognize the name of your test function.

This is an example of test function that can be recognized.

func TestAverage(t *testing.T){

}

Can you upload or show a part of a test file ?

@danielleberre
Copy link
Contributor

@thibaultfalque we should make sure the code does not break if the function is not recognized.

The code need to check for potential -1 index and live with that.

@thibaultfalque
Copy link
Collaborator

I will fix.

@thibaultfalque
Copy link
Collaborator

Please check release 1.2.11-RC8.

@thibaultfalque
Copy link
Collaborator

@xiezhenye could you close the issue if the problem is resolved ?

@thibaultfalque
Copy link
Collaborator

@xiezhenye could you close the issue if the problem is resolved ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants