问题标签 [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.
static-analysis - 维护 FindBugs 错误历史
FindBugs 提供了一种对错误进行数据挖掘的方法。这看起来很有趣,因为它有助于在各种修订中发现错误趋势。我想做的是:
每次提交到版本控制时,都会运行 FindBugs 并生成报告。是否可以生成从所有这些报告中获取数据并显示趋势的报告?有没有人做过类似的事情?
ant - 使用 FindBugs ant 任务查找源路径
我正在尝试让 FindBugs ant 任务在生成的报告中包含源信息。
据我所知, ${package.srcdir} 属性的值是正确的;它指向源树的根目录,因此 ${package.srcdir}/com/mydomain/MyClass.java 是源文件的路径。
生成的报告包含一个<SrcDir>
与给定 ant 任务的源路径匹配的元素,因此显然该<sourcePath>
元素由 findbugs 任务处理。尽管如此,XML 报告中的包统计信息仅包含sourceFile="<Unknown>"
.
我错过了一些明显的东西吗?
java - C/C++ 是否有 Findbugs 和/或 PMD 等价物?
我最近被问及Coverity Prevent的替代方案,用于包含 C/C++ 和 Java 的代码库。显然,在 Java 方面,可用的免费工具包括 Findbugs(编译代码分析)和 PMD(静态代码分析)。它们非常强大,尤其是当您开始研究与 IDE 的集成时(同样,它是免费的)。
但是,当您开始使用各种编译器、体系结构等进入 C/C++ 领域时,事情就变得很冒险了。
我已经为 Java 端提出了多种工具,包括 Findbugs 和 PMD。当考虑使用以下指标时,我正在寻找的是 C/C++ 方面的最佳选择:
- 价格:免费更好,但可以被更好的价值击败。但是,按代码行收费的定价模型令人恐惧。
- 功能集:这个工具如何让我的生活更美好?在我签入之前,在我们发布代码之前,它以什么方式检测我的错误?
- 可用性:我可以在办公桌上使用该工具吗?我可以分享报告和/或调查结果吗?我可以将该工具与 Fogbugz(我们在我的小组中使用)集成吗?我可以将该工具集成到 CruiseControl(或同等产品)中吗?
最终的工具将是像 Findbugs 和 PMD 的组合一样有用和可用的东西,具有相同的功能集,每个座位都是零美元。
java - Findbugs + JSR305:指定默认行为的可能性?
注意:我所说的那些注释是由 JSR305 指定的。
我有最新的 Findbugs (1.3.9), 当某些用 @Nonnull 注释的字段被分配为 null 时,它会正确发现错误。
但是,在我的项目中,“非空逻辑”是默认情况。我会说 null 仅在 5% 的情况下被明确允许。
因此,用@Nonnull 注释 95% 的字段会非常不方便。我宁愿用 @Nullable 注释这 5% 的字段。
我试图用@Nonnull 注释整个包,它不会改变任何东西。
那么,以某种方式可以指定默认逻辑吗?
java - 代码分析器:PMD 和 FindBugs
1.关于PMD:
1.1 如何设置 PMD 检查,忽略其中的一些,例如“变量名称太短或太长”、“删除空构造函数等” - 如果我这样做,则会出现另一个警告,说明该类必须有一些静态方法。基本上,这个类是空的,以供以后开发,我现在喜欢这样。
1.2 是否有必要遵循此警告建议?
1.3 那应该是什么意思?
1.4 这个呢?我很想改变这一点,但目前我没有想到关于改变:
2.关于 FindBugs:
2.1 在声明之后的某个时刻写入静态字段真的有那么糟糕吗?以下代码给了我一个警告:
其中appCalendar
是一个静态变量。
2.2 此代码:
给出警告:
哪里objBRdr
是BufferedReader(FileReader)
。会发生什么?readLine()
可以为空吗?代码嵌套在while (objBRdr.ready())
测试中,到目前为止,我在那里的问题为零。
Update1:当我将代码替换为以下内容时,2.2 已修复:
eclipse-plugin - FindBugs eclipse 插件类位置
是否可以像在 findbugs ant 任务中一样指定类位置?
或者是否有另一种方法来排除类文件的目录(我们将测试类编译到不同的目录并且不想在这些目录上使用 findbugs)
PV戈迪恩
java - 在 BlockedQueue 上同步
我有一个正在审查的代码片段(使用FindBugs)。
}
当我在这段代码上运行 FindBugs 时,它抱怨 -
此方法对作为 java.util.concurrent 包(或其子类)中的类的实例的对象执行同步。这些类的实例有自己的并发控制机制,这些机制与关键字 synchronized 的使用不同且不兼容。
如果我注释掉同步的代码段synchronized(q){
,它会抱怨 -
此方法调用 Object.notify() 或 Object.notifyAll() 而不明显持有对象上的锁。在不持有锁的情况下调用 notify() 或 notifyAll() 将导致抛出 IllegalMonitorStateException
我将如何实现此方法以使其通过 FindBugs 验证?在并发课程的情况下,上述实现是否适用于通知?
谢谢你。
java - 简单的、普遍感兴趣的、基于代码分析器的 Java 问题
好的,在使用PMD和FindBugs代码分析器审查了一些代码之后,我能够对审查过的代码进行很大的更改。但是,有些事情我不知道如何解决。我将在下面重复它们,并且(为了更好地参考)我会给每个问题一个数字。随意回答任何/所有问题。谢谢你的耐心。
1. 即使我已经删除了一些规则,但重新评估代码后相关的警告仍然存在。知道为什么吗?
2.请看声明:
以及 getter 和 setter 对对象的引用:
现在,我想知道为什么第一个声明没有给我任何关于 PMD 的警告,而第二个声明却给了我以下警告:
有关该警告的更多详细信息,请点击此处。
3. 这是另一个警告,也是由 PMD 给出的:
有关该警告的更多详细信息,请点击此处。
现在,我同意这一点,但是如果我写这样的东西怎么办:
我倾向于同意这条规则,但如果代码的性能表明存在多个退出点,我该怎么办?
4. PMD 给了我这个:
当我声明类似:
如果我删除了对 null 的赋值,我会删除这个信息(警告级别是信息),但是..我从 IDE 收到一个错误,说变量可能在稍后的代码中未初始化。所以,我有点坚持。压制警告是你能做的最好的事情吗?
5. PMD警告:
这是 GUI 组件的单一使用的情况或返回复杂对象的方法的情况。在 catch() 部分中将结果分配给 null 是为了避免返回不完整/不一致的对象。是的,应该使用 NullObject,但在某些情况下我不想这样做。那我应该取消那个警告吗?
6. FindBugs 警告 #1:
在方法中
静态变量
该变量允许我测试表单是否已经创建并且是否可见,并且在某些情况下我需要强制重新创建表单。我在这里看不到其他选择。有什么见解吗?(MyClass 实现了 Listener,因此重写了 handleEvent() 方法)。
7. FindBugs 警告 #2:
此警告基于其他类的简单导入显示。我是否需要重构这些导入以使此警告消失?还是问题出在 MyClass2 中?
好的,现在说得够多了……期待更新,基于更多的发现和/或你的答案。谢谢。
java - 如何在安装时在 maven 中自动运行 findbugs
将findbugs 插件添加到 maven 很容易,这样如果我这样做它就会运行
但是,我希望它随时运行
就像单元测试一样。也就是说,如果 findbugs 发现任何错误,我不希望安装成功。我有办法做到这一点吗?
java - MALICIOUS_CODE EI_EXPOSE_REP 中
我对我所有的代码运行 findbugs 并且只处理最重要的东西。我终于解决了最重要的问题,现在正在查看细节。我有一个简单的实体,比如用户:
这个类是不完整的,所以不要对我说它缺少serialVersionUID
其他标准的东西,我只是关心birthDate
安全漏洞。
现在,根据 findbugs 报告,由于我返回对可变对象的引用,因此存在潜在的安全风险。但在实践中,这真的很重要吗?
http://findbugs.sourceforge.net/bugDescriptions.html#EI_EXPOSE_REP
我想在这种情况下我仍然没有真正看到问题所在。我应该传入 along
并从中设置日期吗?
沃尔特