SonarQube JavaSquid传感器错误,带下划线编号

SonarQube JavaSquid传感器错误,带下划线编号,java,sonarqube,squid,sonarqube-5.0,Java,Sonarqube,Squid,Sonarqube 5.0,我们正在分析一个java项目,它使用Java7下划线编号,但是我们得到了下一个错误。我们假设它必须是JavaSquid传感器。是否有解决此问题的变通方法或任何更新 ERROR: Error during Sonar runner execution org.sonar.runner.impl.RunnerException: Unable to execute Sonar at org.sonar.runner.impl.BatchLauncher$1.delegateExecu

我们正在分析一个java项目,它使用Java7下划线编号,但是我们得到了下一个错误。我们假设它必须是JavaSquid传感器。是否有解决此问题的变通方法或任何更新

ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
        at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
        at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
        at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
        at org.sonar.runner.api.Runner.execute(Runner.java:100)
        at org.sonar.runner.Main.executeTask(Main.java:70)
        at org.sonar.runner.Main.execute(Main.java:59)
        at org.sonar.runner.Main.main(Main.java:53)
Caused by: org.sonar.squidbridge.api.AnalysisException: SonarQube is unable to analyze file : '/opt/ATLASSIAN/bamboo-home/xml-data/build-dir/78217217/ER-EADC-JOB1/erpsaas/src/test/java/co/com/psl/erpsaas/general/importacion/comprobantesContables/ComprobanteContableExcelTest.java'
        at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:102)
        at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:75)
        at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:131)
        at org.sonar.java.JavaSquid.scan(JavaSquid.java:124)
        at org.sonar.plugins.java.JavaSquidSensor.analyse(JavaSquidSensor.java:86)
        at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:79)
        at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70)
        at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:122)
        at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:222)
        at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
        at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
        at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:235)
        at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:230)
        at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:223)
        at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
        at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
        at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:65)
        at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:52)
        at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:128)
        at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:93)
        at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:78)
        at org.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:171)
        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
        at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
        ... 9 more
Caused by: java.lang.NumberFormatException: For input string: "100_000"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:492)
        at java.lang.Integer.valueOf(Integer.java:582)
        at org.sonar.java.model.LiteralUtils.intLiteralValue(LiteralUtils.java:57)
        at org.sonar.java.model.LiteralUtils.intLiteralValue(LiteralUtils.java:41)
        at org.sonar.java.checks.ForLoopFalseConditionCheck.eval(ForLoopFalseConditionCheck.java:106)
        at org.sonar.java.checks.ForLoopFalseConditionCheck.isConditionFalseAtInitialization(ForLoopFalseConditionCheck.java:84)
        at org.sonar.java.checks.ForLoopFalseConditionCheck.visitForStatement(ForLoopFalseConditionCheck.java:52)
        at org.sonar.java.checks.AbstractForLoopRule.visitNode(AbstractForLoopRule.java:53)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:89)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:115)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:91)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:115)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:91)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:115)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:91)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:115)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:91)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:115)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:91)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visitChildren(SubscriptionVisitor.java:115)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.visit(SubscriptionVisitor.java:91)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.scanTree(SubscriptionVisitor.java:72)
        at org.sonar.java.ast.visitors.SubscriptionVisitor.scanFile(SubscriptionVisitor.java:65)
        at org.sonar.java.checks.SubscriptionBaseVisitor.scanFile(SubscriptionBaseVisitor.java:33)
        at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:123)
        at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:94)
        ... 38 more

这似乎是org.sonar.java.model.LiteralUtils类的一个缺陷。看看代码,长数据类型有一个修复程序,但整数没有。根据Oracle的文档,下划线可以用于大多数数字类型,但Sonarqube似乎只考虑长s

谢谢!
Mauricio L.

感谢您的反馈和提供堆栈跟踪。正如您所强调的,带下划线的整数当前在类
LiteralUtils
中未正确处理,该类是
Java插件的一部分

我创建了以下票证来处理此问题:。请注意,一旦解决了问题并将其作为发布的一部分,修复程序将立即可用。如果您想为项目做出贡献,请随时提供一个解决方案

作为临时解决办法,只要java插件的新版本不可用,您可以禁用当前触发错误的规则
S2252
(循环条件应至少为true一次)

请注意,其他规则也使用
LiteralUtils.intLiteralValue()
方法,并可能出于同样的原因给您带来麻烦。如果遇到其他相关问题,请尝试禁用以下规则:

  • S888
    -应在“for”循环终止条件中使用关系运算符
  • S2197
    -不应检查模数结果是否直接相等
  • S2251
    -一个“for”循环更新子句应该将计数器向正确的方向移动
  • S2695
    -“PreparedStatement”和“ResultSet”方法应使用有效索引调用