【问题标题】:How to use Findbugs omitVisitors?如何使用 Findbugs omitVisitors?
【发布时间】:2016-02-25 20:44:17
【问题描述】:

我将 Findbugs 与 Gradle 一起使用。我有一个项目在女巫 Findbugs 中发现了一个潜在的错误。

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

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

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

如何省略访问者?

【问题讨论】:

    标签: gradle findbugs


    【解决方案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")
    }
    

    【讨论】:

      【解决方案2】:

      我下载了 findbugs 源并运行了

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

      它说

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 2012-12-26
        • 2011-02-06
        • 1970-01-01
        • 2015-11-11
        相关资源
        最近更新 更多