Findbugs Java 结果: 137 静态分析插件

3
我们在每次提交后都在Jenkins上运行findbug作业,其结果由静态分析插件发布。 通常情况下,这完全按预期工作。但是,偶尔会出现findbugs退出并生成完全空的findbugs.xml文件(大约每100次构建就会出现此问题)。 空的xml文件会导致静态分析插件认为此构建非常成功(没有错误),并将其用作新的参考构建,这又会使之后的每个构建失败/不稳定。
我无法找到有关此退出代码的任何有用信息,也不知道如何防止它发生。 我正在寻找一种方法,要么是防止发生此退出代码137,要么是让静态分析插件将此构建视为失败(而不是新的参考构建)。
我还想知道这个代码实际上意味着什么。
带有退出代码137的作业的控制台输出(作业:#1957,报告没有错误)。
--- snip -- more applying of bugpatterns--
[findbugs] Applying edu.umd.cs.findbugs.detect.MultithreadedInstanceAccess to nl/base/rela/entities/relagroups/RelationGroup$1
 [findbugs] Applying edu.umd.cs.findbugs.detect.BadUseOfReturnValue to nl/base/rela/entities/relagroups/RelationGroup$1
 [findbugs] Applying edu.umd.cs.findbugs.detect.MethodReturnCheck to nl/base/rela/entities/relagroups/RelationGroup$1
 [findbugs] Applying edu.umd.cs.findbugs.detect.IDivResultCastToDouble to nl/base/rela/entities/relagroups/RelationGroup$1
 [findbugs] Applying edu.umd.cs.findbugs.detect.FindBadCast2 to nl/base/rela/entities/relagroups/RelationGroup$1
 [findbugs] Java Result: 137
 [findbugs] Output saved to findbugs.xml

BUILD SUCCESSFUL
Total time: 9 minutes 0 seconds
[FINDBUGS] Collecting findbugs analysis files...
[FINDBUGS] Finding all files that match the pattern trunk/findbugs.xml
[FINDBUGS] Parsing 1 files in /data/hudson/workspace/crm-findbugs
[FINDBUGS] Skipping file  of module /data/hudson/workspace/crm-findbugs/trunk/findbugs.xml because it's empty.
[FINDBUGS] Computing warning deltas based on reference build #1956
[ANALYSIS-COLLECTOR] Computing warning deltas based on reference build #1956
Archiving artifacts

上一个作业的控制台输出(作业编号:#1956,报告存在的错误):

     ---snip---
 [findbugs] Applying edu.umd.cs.findbugs.detect.AtomicityProblem to nl/base/rela/entities/Project$1
 [findbugs] Applying edu.umd.cs.findbugs.detect.DefaultEncodingDetector to nl/base/rela/entities/Project$1
 [findbugs]       32 usecs/byte      29 msec     898 bytes  1 pass nl/base/rela/entities/Project$1
 [findbugs] Analysis completed
 [findbugs] Warnings generated: 770
 [findbugs] Calculating exit code...
 [findbugs] Setting 'bugs found' flag (1)
 [findbugs] Exit code set to: 1
 [findbugs] Java Result: 1
 [findbugs] Output saved to findbugs.xml

BUILD SUCCESSFUL
Total time: 9 minutes 30 seconds
[FINDBUGS] Collecting findbugs analysis files...
[FINDBUGS] Finding all files that match the pattern trunk/findbugs.xml
[FINDBUGS] Parsing 1 files in /data/hudson/workspace/crm-findbugs
[FINDBUGS] Successfully parsed file /data/hudson/workspace/crm-findbugs/trunk/findbugs.xml of module  with 770 warnings.
[FINDBUGS] Computing warning deltas based on reference build #1955
[ANALYSIS-COLLECTOR] Computing warning deltas based on reference build #1955
Archiving artifacts

我的猜测是某种致命错误,很可能是内存不足。我还没有在Jenkins中设置FindBugs,所以这就是我得到的全部信息。 - David Harkness
如果分析的代码库很大,那么您可能需要增加Sonar / FindBugs可用的内存。根据内存何时何地耗尽,这可能会触发各种不稳定的行为。 - barfuin
1个回答

2
  1. 解决方法是添加一个构建步骤,运行脚本检查findbugs.xml文件是否为空,如果为空则返回非零退出码,导致构建失败。

  2. https://issues.jenkins-ci.org上报告Jenkins插件中的错误。

  3. 可选:查看插件,自行修复并提交补丁。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接