2009-08-24 17 views
3

私は、Findbugsで使用するためのjsr 305アノテーションを試しています。特に、@ CheckForNullアノテーションを使用しています。 jsr305.jarとannotations.jarをビルドパスに追加しましたが、バグはfindbugsでは見つかりませんでした。 EclipseのFindbugsプラグインでEclipseを使用しています。以下は同じバグを示すサンプルコードですが、findbugsを実行してバグを見つけたときは表示されません。私はEclipse GalileoとGanymedeでこれを試しました。eclipseでjsr305アノテーションを使用しているFindbugsがバグを見つけられていません

public class FindBugsAnnotationsTest { 

    ArrayList<String> canBeNull; 

    @CheckForNull 
    public List<String> getCanBeNull() { 
     return canBeNull; 
    } 

    public void shouldGetFindbugsWarning() { 
    canBeNull.add("a string"); 

     getCanBeNull().add("a string"); 
    } 
} 

答えて

2

これは明らかかもしれませんが、あなたの問題はEclipse(おそらくFindBugsプラグイン)であり、FindBugs自体ではないと思います。

FindBugsをコマンドラインから実行して、Eclipseの問題を解決し、FindBugsが正しく動作するようにすることを検討することがあります。スタンドアロンモードでFindBugsを実行する方法を知っていると、IDEが正しく設定されていないときのフォールバックが発生します。

私は、FindBugsAnnotationsTest.javaという名前のファイルにソースコードを保存したListための輸入を追加し、ArrayList、およびCheckForNull、コンパイル、およびFindBugsの1.3.9を実行しました。 FindBugsのは、null値について、いくつかの警告を生成します。

import java.util.ArrayList; 
import java.util.List; 
import edu.umd.cs.findbugs.annotations.CheckForNull; 

コマンド:${FINDBUGS_HOME}がディレクトリである

javac -d . -classpath ${FINDBUGS_HOME}/lib/findbugs.jar FindBugsAnnotationsTest.java 
${FINDBUGS_HOME}/bin/findbugs FindBugsAnnotationsTest.class 

 
M D NP: Possible null pointer dereference in FindBugsAnnotationsTest.shouldGetFindbugsWarning() due to return value of called method Dereferenced at FindBugsAnnotationsTest.java:[line 18] 
M C UwF: Unwritten field: FindBugsAnnotationsTest.canBeNull At FindBugsAnnotationsTest.java:[line 12] 
M C NP: Read of unwritten field canBeNull in FindBugsAnnotationsTest.shouldGetFindbugsWarning() At FindBugsAnnotationsTest.java:[line 16] 
Warnings generated: 3 

はこれらは私がFindBugsAnnotationsTest.javaの先頭に追加輸入されていますFindbugs 1.3.9がインストールされています。 javacがパス上にあると想定されます。

注:私の代わりにannotations.jarjsr305.jarfindbugs.jarを使用しますが、私は、このコマンドを使用して、同じ結果を得る:

javac -d . -classpath ${FINDBUGS_HOME}/lib/annotations.jar:${FINDBUGS_HOME}/lib/jsr305.jar FindBugsAnnotationsTest.java 
関連する問題