执行声纳转轮时BlameGenerator中的nullpointerexception

时间:2015-06-25 05:54:07

标签: git sonarqube jgit

当我执行sonar-runner分析我的项目时,我得到以下stacktrace:

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

版本:声纳-rina 2.4,声纳5.1.1

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

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

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

1 个答案:

答案 0 :(得分:0)

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