如何使用Findbugs omitVisitors?

时间:2016-02-25 20:44:18

标签: gradle findbugs

我和Gradle一起使用Findbugs。我有一个巫婆项目Findbugs发现了潜在的错误。

错误类型ODR_OPEN_DATABASE_RESOURCE org.kec.db.connection.DBAccess.query(String)可能无法关闭PreparedStatement。

我无法更改代码,因此我想将bug检测器/访问者添加到OmitVisitors列表中。

据我了解OmitVisitors的用法,它需要一个类名列表。我的问题是我找不到bug类型和类名之间的映射。

如何省略访客?

2 个答案:

答案 0 :(得分:1)

可以使用Findbugs filters排除某些已分析课程的特定错误。您需要提供要排除的类/错误匹配列表。在您的情况下,XML文件将如下所示:

<FindBugsFilter>
    <Match>
        <Class name="org.kec.db.connection.DBAccess" />
        <Method name="query" />
        <Bug pattern="ODR_OPEN_DATABASE_RESOURCE" />
    </Match>
</FindBugsFilter>

在Gradle脚本中,需要为excludeFilter属性设置包含已排除错误的XML文件。

findbugs {
    excludeFilter = file("$rootProject.projectDir/config/findbugs/excludeFilter.xml")
}

答案 1 :(得分:0)

我下载了findbugs源并运行

find -name *.java | xargs grep -lir ODR_OPEN_DATABASE_RESOURCE

它说

./src/java/edu/umd/cs/findbugs/detect/FindOpenStream.java

所以我猜你应该使用FindOpenStream作为名称