【问题标题】:nullpointerexception in BlameGenerator when executing sonar-runner执行 sonar-runner 时 BlameGenerator 中的 nullpointerexception
【发布时间】:2016-10-26 17:24:46
【问题描述】:

当我执行 sonar-runner 来分析我的项目时,我得到以下堆栈跟踪:

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.IllegalStateException: Unable to blame file client/src/main/java/idainfront/ekn/client/util/ClientFileUtil.java
    at org.sonar.plugins.scm.git.JGitBlameCommand.blame(JGitBlameCommand.java:128)
    at org.sonar.plugins.scm.git.JGitBlameCommand.access$000(JGitBlameCommand.java:45)
    at org.sonar.plugins.scm.git.JGitBlameCommand$1.call(JGitBlameCommand.java:113)
    at org.sonar.plugins.scm.git.JGitBlameCommand$1.call(JGitBlameCommand.java:110)
    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)
Caused by: java.lang.NullPointerException
    at org.eclipse.jgit.blame.BlameGenerator.getSourceStart(BlameGenerator.java:871)
    at org.eclipse.jgit.blame.BlameResult.loadFrom(BlameResult.java:338)
    at org.eclipse.jgit.blame.BlameResult.computeAll(BlameResult.java:240)
    at org.eclipse.jgit.blame.BlameGenerator.computeBlameResult(BlameGenerator.java:451)
    at org.eclipse.jgit.api.BlameCommand.call(BlameCommand.java:231)
    at org.sonar.plugins.scm.git.JGitBlameCommand.blame(JGitBlameCommand.java:123)
    ... 7 more

版本:sonar-runner 2.4,sonar 5.1.1

当我排除文件时一切正常:

sonar.exclusions=**/src/main/java/idainfront/ekn/client/util/ClientFileUtil.java

这是一个已知的错误还是有更好的解决方法?

【问题讨论】:

  • 你能准确地说出 SonarQube Git 插件的版本吗?
  • 我写了一篇关于如何调查此类问题以确定这是否是 JGit 错误的教程。请按照它并用您的发现完成您的问题:docs.sonarqube.org/display/PLUG/…?
  • 是的,这是一个 JGit 错误。我试用了最新版本 4.0.1,它也有同样的问题。
  • 你能把你本地的 git 工作空间发给我吗(你可以尝试匿名,见git-scm.com/docs/git-fast-export)。请在 SonarQube Google 群组上发帖。谢谢

标签: git sonarqube jgit


【解决方案1】:

我遇到了类似的问题,但问题的根源在于我的 Sonar.maven.plugin 配置默认使用 GIT SCM,同时该项目是基于 SVN 构建的。 因此,我必须在 Maven 中使用 -Dsonar.scm.provider=svn 明确设置它

【讨论】:

    猜你喜欢
    • 2014-09-12
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 2012-05-17
    • 2014-04-13
    • 2016-01-30
    • 2015-07-25
    • 1970-01-01
    相关资源
    最近更新 更多