SonarQube is unable to analyze file

1,741 views
Skip to first unread message

amro...@gmail.com

unread,
Mar 12, 2017, 10:18:44 AM3/12/17
to SonarQube
Hi,
Anybody can help me why I am getting this error ?
Thanks in advance :)


ERROR: Error during SonarQube Scanner execution
org.sonar.squidbridge.api.AnalysisException: SonarQube is unable to analyze file : '/DATA/agent/bamboo-agent-home/xml-data/build-dir/JFWC-DEV-JOB1/backup-parser/src/test/java/com/progressoft/jfw/backupconverter/BackupFilesConverterTest.java'
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:93)
at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:67)
at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:114)
at org.sonar.java.JavaSquid.scan(JavaSquid.java:108)
at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:87)
at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:57)
at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:49)
at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:182)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:247)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:242)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:232)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47)
at org.sonar.scanner.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.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:115)
at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62)
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:498)
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:110)
at org.sonarsource.scanner.cli.Main.execute(Main.java:74)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.IndexOutOfBoundsException: index (0) must be less than size (0)
at com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:310)
at com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:293)
at com.google.common.collect.Lists$ReverseList.reverseIndex(Lists.java:849)
at com.google.common.collect.Lists$ReverseList.get(Lists.java:886)
at org.sonar.java.se.xproc.HappyPathYield.statesAfterInvocation(HappyPathYield.java:68)
at org.sonar.java.se.ExplodedGraphWalker.lambda$executeMethodInvocation$12(ExplodedGraphWalker.java:655)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
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 org.sonar.java.se.ExplodedGraphWalker.executeMethodInvocation(ExplodedGraphWalker.java:654)
at org.sonar.java.se.ExplodedGraphWalker.visit(ExplodedGraphWalker.java:502)
at org.sonar.java.se.ExplodedGraphWalker.execute(ExplodedGraphWalker.java:238)
at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:200)
at org.sonar.java.se.ExplodedGraphWalker.visitMethod(ExplodedGraphWalker.java:193)
at org.sonar.java.se.SymbolicExecutionVisitor.execute(SymbolicExecutionVisitor.java:77)
at org.sonar.java.se.SymbolicExecutionVisitor.visitNode(SymbolicExecutionVisitor.java:62)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:95)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:120)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:120)
at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:97)
at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:78)
at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:64)
at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:118)
at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:84)
... 34 more
ERROR: 

amro...@gmail.com

unread,
Mar 12, 2017, 10:21:01 AM3/12/17
to SonarQube, amro...@gmail.com
sonar java plugin (latest) 4.6.0.8784
sonarqube server version: 6.2

Scott B.

unread,
Mar 12, 2017, 4:37:00 PM3/12/17
to SonarQube, amro...@gmail.com
Hi.


By the way, no one will help you if you don't share the problematic file or a minimal reproducible example.

amro...@gmail.com

unread,
Mar 13, 2017, 4:55:06 AM3/13/17
to SonarQube, amro...@gmail.com
Thanks for your feedback, 
Here is the class 'BackupFilesConverterTest.java' where issue occurs:


package com.progressoft.jfw.backupconverter;

import org.junit.Test;

public class BackupFilesConverterTest {

    private static final String TEST = "test";

    private String[] directories(String... values) {
        return values;
    }

    private BackupFilesConverter backupConverter(String[] directories, String destinationDirectory) {
        return new BackupFilesConverter(directories, destinationDirectory);
    }

    @Test(expected = BackupFilesConverter.InvalidBackupDirectoriesException.class)
    public void createWithNullDirectories_ShouldThrowException() {
        backupConverter(null, "");
    }

    @Test(expected = BackupFilesConverter.InvalidBackupDirectoriesException.class)
    public void createWithEmptyDirectories_ShouldThrowException() {
        backupConverter(directories(), "");
    }

    @Test(expected = BackupFilesConverter.InvalidDestinationFolderException.class)
    public void createWithNullDestinationDirectory_ShouldThrowException() {
        backupConverter(directories(TEST), null);
    }

    @Test(expected = BackupFilesConverter.InvalidDestinationFolderException.class)
    public void createWithEmptyDestinationDirectory_ShouldThrowException() {
        backupConverter(directories(TEST), "");
    }

    @Test(expected = BackupFilesConverter.InvalidDestinationFolderException.class)
    public void createWithOnlySpacesDestinationDirectory_ShouldThrowException() {
        backupConverter(directories(TEST), "   ");
    }

    @Test(expected = BackupFilesConverter.NotDirectoryException.class)
    public void givenBackupFilesConverter_WhenPassListContainsOneFileAndConvert_ShouldThrowException() {
        backupConverter(directories("./src/test/resources/files/label/labels.xml"), TEST).convert();
    }
}

Nicolas Peru

unread,
Mar 13, 2017, 6:37:42 AM3/13/17
to amro...@gmail.com, SonarQube
Hi, 

Thanks for providing the source raising the problem. 
The failure comes from the invocation of the directories method with no argument, which is perfectly valid, but badly handled in Xprocedural symbolic execution engine. 

Ticket created to tackle the issue : https://jira.sonarsource.com/browse/SONARJAVA-2183 

Cheers, 

--
You received this message because you are subscribed to the Google Groups "SonarQube" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonarqube+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonarqube/e03bbe2e-f1eb-45e3-bb08-6e2c6fc38929%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
Nicolas PERU | SonarSource
Senior Developer
http://sonarsource.com

amro...@gmail.com

unread,
Mar 13, 2017, 7:17:13 AM3/13/17
to SonarQube, amro...@gmail.com
Thank you Nicolas for taking this issue in consideration :)
One last thing, I have a possible code smell false positive, I'd like to share it with you, please check the attached screenshot.
I can send you the class for further investigation.
Thanks in advance :) 

G. Ann Campbell

unread,
Mar 13, 2017, 7:55:53 AM3/13/17
to SonarQube, amro...@gmail.com
Hi,

Please start new threads for new topics.


Thx,
Ann

amro...@gmail.com

unread,
Mar 13, 2017, 8:31:01 AM3/13/17
to SonarQube, amro...@gmail.com
Done :)
Thank you!
Reply all
Reply to author
Forward
0 new messages