【发布时间】:2026-02-12 09:45:02
【问题描述】:
如何在代码分析过程中修复 ArrayIndexOutOfBoundsException?我使用声纳运行器 2.4 版。我对许多文件都遇到了同样的问题。请在下面找到完整的堆栈。
17:19:59.150 INFO - Execute decorators...
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 7:25.061s
Final Memory: 22M/510M
INFO: ------------------------------------------------------------------------
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.api.utils.SonarException: Fail to decorate 'org.sonar.api.resources.File@4156d9a8[key=private/gp_cmd_stop.c,deprecatedKey=gp_cmd_stop.c,path=private/gp_cmd_stop.c,dir=[root],filename=gp_cmd_stop.c,language=C]'
at org.sonar.batch.phases.DecoratorsExecutor.executeDecorator(DecoratorsExecutor.java:103)
at org.sonar.batch.phases.DecoratorsExecutor.decorateResource(DecoratorsExecutor.java:86)
at org.sonar.batch.phases.DecoratorsExecutor.decorateResource(DecoratorsExecutor.java:78)
at org.sonar.batch.phases.DecoratorsExecutor.decorateResource(DecoratorsExecutor.java:78)
at org.sonar.batch.phases.DecoratorsExecutor.execute(DecoratorsExecutor.java:70)
at org.sonar.batch.phases.PhaseExecutor.execute(PhaseExecutor.java:126)
...
... 9 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 168
at org.sonar.plugins.core.issue.tracking.FileHashes.getHash(FileHashes.java:75)
at org.sonar.plugins.core.issue.IssueTracking.setChecksumOnNewIssues(IssueTracking.java:69)
at org.sonar.plugins.core.issue.IssueTracking.track(IssueTracking.java:54)
at org.sonar.plugins.core.issue.IssueTrackingDecorator.doDecorate(IssueTrackingDecorator.java:138)
at org.sonar.plugins.core.issue.IssueTrackingDecorator.decorate(IssueTrackingDecorator.java:112)
at org.sonar.batch.phases.DecoratorsExecutor.executeDecorator(DecoratorsExecutor.java:95)
... 37 more
ERROR:
ERROR: Re-run SonarQube Runner using the -X switch to enable full debug logging.
【问题讨论】:
-
您能提供完整的日志吗?您的 SonarQube 实例中安装了哪些插件?分析来源的语言是什么?
-
是C语言。安装的插件:plugin C / C++ / Objective-C / 3.3 plugin Findbugs / 3.1 / plugin Java / 2.8 plugin Core / 5.0 /
-
请在此处找到我使用 -X 选项获得的日志goo.gl/Q3L9n4
-
我怀疑你面对的是jira.sonarsource.com/browse/CPP-1009,这个问题在C/C++/Objective-C插件的3.4版本中已经修复了。
-
更新到 3.6 版解决了这个问题。
标签: java sonarqube sonar-runner