问题标签 [findbugs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7287 浏览

java - 方法可能无法在异常时关闭流

我收到一个关于 findbugs 的严重错误:

该方法创建一个 IO 流对象,不将其分配给任何字段,将其传递给其他方法或将其返回,并且似乎不会在该方法之外的所有可能的异常路径上关闭它。这可能会导致文件描述符泄漏。使用 finally 块来确保关闭流通常是一个好主意。

我还需要关闭InputStreamReader还是p.getErrorStream(它返回InputStream)?

0 投票
1 回答
368 浏览

spring - 将 Struts 动作类管理委派给 Spring 在 Findbugs 中引发 MTIA 严重破坏

当我使用http://www.ibm.com/developerworks/java/library/j-sr2.html#N101B7中解释的“将 Struts 操作管理委托给 Spring”方法时, 在功能方面工作正常,但 findbugs 报告如下 voilation Dodgy - 类扩展 Struts Action 类并使用实例变量:MTIA

我通过 spring 将 bean 依赖项注入到 action 类中。

请帮助我并建议我一种更清洁的方法来解决这个问题。

谢谢

0 投票
6 回答
2604 浏览

java - 使用 FindBugs 发现 NullPointerException 错误

当我在此代码上运行 FindBugs 时,它不会报告任何问题。

虽然在这里它发现了预期的问题:

为什么在第一种情况下会失败?

0 投票
5 回答
11390 浏览

java - 在 Serializable Java 类中使用 Logger 的正确方法是什么?

我正在处理的系统中有以下(修改过的)类,Findbugs正在生成SE_BAD_FIELD警告,我试图理解为什么它会这样说,然后再以我认为的方式修复它。我感到困惑的原因是因为描述似乎表明我在类中没有使用其他不可序列化的实例字段,但 bar.model.Foo 也不是可序列化的并且以完全相同的方式使用(就我而言可以告诉)但 Findbugs 不会为它生成警告。

我最初的解决方案是在我使用它时从工厂获取记录器参考:

不过,这似乎并不是特别有效。

想法?

0 投票
1 回答
1197 浏览

java - 添加专属过滤器在查找错误中

我希望我的 findbugs 报告不显示以下错误:

DM_NUMBER_CTOR:方法调用低效的 Number 构造函数;改用静态 valueOf

问题是这发生在 groovy 生成的代码文件中,所以我无法控制源代码 - 这就是为什么我想排除它并将其添加到我的排除过滤器中。

我不想显式添加类(因为我制作了许多工具将使用的 API,所以我希望我的过滤器是通用的)。我不想按类型从报告中完全删除这个错误,我真的只想排除这个错误,如果它发生在“静态初始化程序”方法中。任何的想法?我尝试了下面的过滤器,但没有运气,也许有人有更好的主意?

在这种情况下,这是 FindBugs 的“堆栈跟踪”:

在类 net.milanaleksic.cuc.tools.sound.SoundPlayerTool 在方法 net.milanaleksic.cuc.tools.sound.SoundPlayerTool.() 调用方法 new Long(long) 应该调用 Long.valueOf(long) 而不是在 SoundPlayerTool.groovy

0 投票
6 回答
827 浏览

java - 何时停止遵循静态代码分析的建议?

很长一段时间以来,我确实在一个包含超过 100.000 行 Java 代码的项目上使用静态代码分析。我从 Findbugs 开始,一开始它给了我大约 1500 个问题。随着时间的推移,我修复了最严重的问题,并开始使用其他工具,如 PMD、Lint4J、JNorm 和现在的 Enerjy。

随着更严重的问题得到解决,出现了大量的低严重性问题。你如何处理这些低优先级的问题?

  • 你尝试修复所有这些吗?
  • 还是仅在新编写的代码中?
  • 您是否经常禁用某些规则?(我发现我几乎可以使用任何可用的工具)。

如果你忽略或禁用规则,你会记录这些吗?您的经理对“留下数千个低优先级问题未解决”有何看法?您在代码中使用(多个)工具特定注释还是有更好的方法?

0 投票
2 回答
311 浏览

file - 通过使用 findbugs 分析过滤 jar 文件

我有一个 jar 文件,我想通过 build.xml 用 findbugs 分析它。我使用“class location =....jar” - 模式。jar 文件包含几个文件夹,但我只需要分析一个文件夹。我该如何指定?提前致谢 !

0 投票
3 回答
1615 浏览

java - Findbugs 和比较

我最近开始在我正在做的 java 构建中使用 findbugs 静态分析工具。第一份报告带有大量高优先级警告。作为一个痴迷型的人,我已经准备好将他们全部击倒。但是,我一定错过了什么。在比较事物时,我会收到大部分警告。比如下面的代码:

在读取的 if 语句中产生高优先级警告。

文件:Indenter.java,行:60,类型:BIT_AND_ZZ,优先级:高,类别:正确检查 sample.Indenter.setSpacesPerLevel(int) 中是否 ((...) & 0) == 0

我正在将 int 与 int 进行比较,这似乎很常见。通过类似的简单比较,我得到了很多此类错误。

对于看似简单的代码块,我还有很多其他高优先级警告。我在这里错过了什么吗?我意识到静态分析会产生误报,但我看到的错误似乎太微不足道而不能成为误报。

这个也让我摸不着头脑。

这给出了以下 findbugs 警告:

有任何想法吗?

所以基本上我有一些文件和 50-60 个类似于上面的高优先级警告。我正在使用 findbugs 1.3.9 并从 findbugs ant 任务中调用它

更新: 我让这个构建由一个 hudson 服务器执行,并让 Clover 检测代码以进行代码覆盖。当我关闭它时,我所有的高优先级警告都消失了。现在这是有道理的。感谢您的反馈。

0 投票
2 回答
1234 浏览

maven-2 - How to integrate findbugs with maven

Please provide steps to integrate findbugs with maven

0 投票
4 回答
630 浏览

java - maven findbugs'高水位线'

[findbugs 是这里的例子,问题适用于任何这样的 maven 插件]

不久前我参加了一个构建讲座,其中一个我非常喜欢的模式是:当向链中添加一个新工具并且你从 n 违规开始时,你应该保持 n 减少(高水位线)并且失败仅当当前检查超过 n 的最后一个值时才构建。

findbugs 刚刚被引入到我们的构建中,我们正在寻找一种方法来实现这种模式。我们无法通过插件配置看到任何方法,因此很好奇是否有人可以提及他们是如何实现这一目标的。我想显而易见的方法是自定义插件,但在我们继续充电之前,想听听其他人的想法。