sonar-fsharpsecurity-plugin icon indicating copy to clipboard operation
sonar-fsharpsecurity-plugin copied to clipboard

Content not allowed in prolog error when running plugin

Open abelbraaksma opened this issue 2 years ago • 1 comments

The following error is raised when running the plugin as it is currently written. Cause appears to be that there's a BOM in the output XML from the F# plugin. While this is totally legal for UTF-8 encoded XML, there's a gazillion bug reports out there that many Java XML readers cannot read such UTF-8 XML files.

ERROR: SonarQube Community F# plugin analyzis failed
java.lang.RuntimeException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
        at com.google.common.base.Throwables.propagate(Throwables.java:155)
        at org.sonar.plugins.fsharp.FSharpAnalysisResultImporter$Parser.parse(FSharpAnalysisResultImporter.java:106)
        at org.sonar.plugins.fsharp.FSharpAnalysisResultImporter.parse(FSharpAnalysisResultImporter.java:86)
        at org.sonar.plugins.fsharp.FSharpSensor.importResults(FSharpSensor.java:154)
        at org.sonar.plugins.fsharp.FSharpSensor.execute(FSharpSensor.java:112)
        at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:64)
        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)
INFO: Reading analysis file: D:\Projects\Lula\risk-assessment\.sonarqube\out\.sonar\mod3\sonarDiagnostics.xml
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
        at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:81)
        at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
        at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
        at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:392)
        at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:388)
        at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:385)
        at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:357)
        at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
        at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
INFO: Sensor F# [fsharpsecurity] (done) | time=11242ms
        at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:134)
        at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
        at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
        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(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
INFO: Sensor JaCoCo XML Report Importer [jacoco]
        at jdk.proxy1/jdk.proxy1.$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)
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
        at java.xml/com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:652)
INFO: 'sonar.coverage.jacoco.xmlReportPaths' is not defined. Using default locations: target/site/jacoco/jacoco.xml,target/site/jacoco-it/jacoco.xml,build/reports/jacoco/test/jacocoTestReport.xml
        at org.sonar.plugins.fsharp.FSharpAnalysisResultImporter$Parser.readRoot(FSharpAnalysisResultImporter.java:131)
        at org.sonar.plugins.fsharp.FSharpAnalysisResultImporter$Parser.parse(FSharpAnalysisResultImporter.java:104)
        ... 34 common frames omitted

INFO: No report imported, no coverage information will be imported by JaCoCo XML Report Importer
....

abelbraaksma avatar Apr 29 '22 13:04 abelbraaksma

This is fixed in #10. Use that PR to be able to successfully compile and run this otherwise excellent plugin.

abelbraaksma avatar Apr 29 '22 13:04 abelbraaksma