执行声纳转轮时BlameGenerator中的NullPointerExceptions

时间:2016-08-10 07:31:40

标签: java git jgit

这不是一个新问题,但它仍然出现在jGit 4.4.1中。

当我通过Jenkins执行sonar-runner时,BlameGenerator中的NullPointerExceptions存在一些问题(总共5个)。

我下载并尝试了最新的jgit版本以查看错误是否可重现:

$ /c/Users/ebiesse/Downloads/org.eclipse.jgit.pgm-4.4.1.201607150455-r.sh --version jgit version 4.4.1.201607150455-r

并且它给出了与Jenkins工作相同的根本原因,所以我猜问题是在jgit中:

$ /c/Users/ebiesse/Downloads/org.eclipse.jgit.pgm-4.4.1.201607150455-r.sh  blame -w services/document-definition-service-client-impl/src/main/java/com/streamserve/service/client/document/definition/request/GetDocumentDefinitionRequest.java
java.lang.NullPointerException
        at org.eclipse.jgit.blame.BlameGenerator.getSourceStart(BlameGenerator.java:870)
        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.BlameResult.computeRange(BlameResult.java:294)
        at org.eclipse.jgit.pgm.Blame.run(Blame.java:195)
        at org.eclipse.jgit.pgm.TextBuiltin.execute(TextBuiltin.java:199)
        at org.eclipse.jgit.pgm.Main.execute(Main.java:246)
        at org.eclipse.jgit.pgm.Main.run(Main.java:138)
        at org.eclipse.jgit.pgm.Main.main(Main.java:110)

在这个特定的目录中还有3个java文件,它们都很好。

  • 我能做些什么来让失败的文件通过?

  • git-repo非常大。如果我打包并发送它,是否有可能仅包装它的一部分?

亲切的问候, 梨香

2 个答案:

答案 0 :(得分:0)

这是JGit bugzilla 499543,仍然出现在JGit 4.6.0(SonarQube Git插件1.3)中。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=499543

答案 1 :(得分:0)

我使用最新的JGit 4.11版本和CentOS 7.4运行命令行测试。 问题基本上仍然存在,但堆栈跟踪显着不同:

$ ../../org.eclipse.jgit.pgm-4.11.0.201803080745-r.sh blame  -w  \ 
    src/main/java/Package/Name/And/File.java
java.lang.NullPointerException
        at org.eclipse.jgit.pgm.Blame.run(Blame.java:193)
        at org.eclipse.jgit.pgm.TextBuiltin.execute(TextBuiltin.java:228)
        at org.eclipse.jgit.pgm.Main.execute(Main.java:278)
        at org.eclipse.jgit.pgm.Main.run(Main.java:166)
        at org.eclipse.jgit.pgm.Main.main(Main.java:138)

删除-w选项不再对结果产生任何影响。 使用绝对路径而不是相对路径也不会影响结果。