【问题标题】:NPE when running Sonar Runner运行 Sonar Runner 时的 NPE
【发布时间】:2015-06-03 08:53:53
【问题描述】:

针对 SonarQube 5.1 RC2 运行 Sonar Runner 2.4 时,我收到此错误:

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: java.lang.NullPointerException
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:98)
at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)
at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)
at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
at sun.nio.fs.AbstractPath.resolve(AbstractPath.java:53)
at org.sonar.api.batch.fs.internal.DefaultInputFile.path(DefaultInputFile.java:72)
at org.sonar.api.batch.fs.internal.DefaultInputFile.file(DefaultInputFile.java:64)
at org.sonar.api.batch.fs.internal.PathPattern$RelativePathPattern.match(PathPattern.java:101)
at org.sonar.batch.scan.filesystem.LanguageDetection.isCandidateForLanguage(LanguageDetection.java:124)
at org.sonar.batch.scan.filesystem.LanguageDetection.language(LanguageDetection.java:97)
at org.sonar.batch.scan.filesystem.InputFileBuilder.completeAndComputeMetadata(InputFileBuilder.java:100)
at org.sonar.batch.scan.filesystem.FileIndexer$1.call(FileIndexer.java:157)
at org.sonar.batch.scan.filesystem.FileIndexer$1.call(FileIndexer.java:154)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Process exited with code 1
Step Start SonarQube Code Analysis (Command Line) failed

同样的事情也适用于 SonarQube 5.0.1。

也许在 Sonar Runner 中进行一些防御性编程会很好。 NPE 不会告诉用户任何有意义的事情。我建议它们包含一个断言,如果出现问题,则输出有用的异常消息。

【问题讨论】:

  • 这个有什么更新吗?我遇到了同样的问题。

标签: sonar-runner sonarqube-5.0


【解决方案1】:

很可能某些预期目录的声纳属性是用包含“..”的东西定义的。不幸的是,在我的测试中,声纳需要一条绝对路径。我在使用 sonar.sources、sonar.java.binaries 和 sonar.projectBaseDir 属性的 sonar-ant-runner 中遇到问题。

【讨论】:

  • 如果您对某个特定问题有话要说,但没有解决问题的方法,请将其作为评论发布,而不是作为答案发布。
  • 我遇到了同样的问题,并且在声纳路径属性中有“..”是问题所在。并删除它们修复了 NPE。
猜你喜欢
  • 2012-05-17
  • 2016-09-16
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
相关资源
最近更新 更多