2016-02-25 56 views
3

我將Findbugs與Gradle一起使用。我有一個FindBugs女巫的項目發現了一個潛在的錯誤。如何使用Findbugs omitVisitors?

錯誤類型ODR_OPEN_DATABASE_RESOURCE org.kec.db.connection.DBAccess.query(String)可能無法關閉PreparedStatement。

我無法更改代碼,因此我想將bug檢測器/訪問者添加到OmitVisitors列表中。

據我瞭解OmitVisitors的用法它需要一個類名列表。我的問題是,我無法找到錯誤類型和類名之間的映射。

如何省略訪問者?

回答

1

排除特定的錯誤了你的一些分析類的可能用Findbugs filters完成。你需要想出一個你想排除的類/錯誤匹配列表。在你的情況下,XML文件是這樣的:

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

在搖籃腳本,以排除錯誤的XML文件需要爲excludeFilter屬性設置。

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

我下載了FindBugs的來源和跑

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

它說

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

所以我猜你應該使用FindOpenStream姓名

相關問題