升级到3.7.1规则后,SonarQube分析失败

时间:2015-11-23 15:20:56

标签: sonarqube

使用SonarQube 5.2 - 只是昨天下载并在Windows下运行的“click and go”发行版。没什么好看的。

将“Java”规则包从捆绑的3.6版本升级到3.7.1后,声纳转轮在分析过程中失败。

使用'-e'选项运行时会显示一个很长的堆栈跟踪,但是没有关于文件失败的位置(行号,方法)或规则失败的详细信息。

我已经将堆栈跟踪削减到我认为有用的位:

ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
...
Caused by: org.sonar.squidbridge.api.AnalysisException: SonarQube is unable to analyze file : 'C:\Users\robert.rusk\Documents\cvs\ip_probe\src\com\robert\splat\MyClass.java'
...
Caused by: java.lang.IndexOutOfBoundsException: index (1) must be less than size (1)
...
        at org.sonar.java.checks.PrintfCheck.verifyParameters(PrintfCheck.java:173)
        at org.sonar.java.checks.PrintfCheck.onMethodInvocationFound(PrintfCheck.java:112)
...

1 个答案:

答案 0 :(得分:2)

经过一些调查后,我现在相信错误的发生是因为调用String.format时没有足够的参数(应该是2),当我注释掉这一行时,分析运行没有任何问题。

splatDateStr = String.format("%tFT%<tRZ", splatDate);

我想这是堆栈跟踪中引用的PrintfCheck