Это может быть очевидно, но я думаю, что ваши проблемы связаны с Eclipse (возможно, в частности с плагином FindBugs), а не с самим FindBugs.
Вы можете рассмотреть возможность запуска FindBugs из командной строки, чтобы устранить любые проблемы с Eclipse и убедиться, что FindBugs работает правильно сам по себе. Знание того, как запустить FindBugs в автономном режиме, даст вам запасной вариант, если ваша IDE настроена неправильно.
Я сохранил ваш исходный код в файле с именем FindBugsAnnotationsTest.java, добавил импорт для List, ArrayList и CheckForNull, скомпилировал и запустил FindBugs 1.3.9. FindBugs генерирует несколько предупреждений о нулевых значениях:
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:
import java.util.ArrayList;
import java.util.List;
import edu.umd.cs.findbugs.annotations.CheckForNull;
Команды:
javac -d . -classpath ${FINDBUGS_HOME}/lib/findbugs.jar FindBugsAnnotationsTest.java
${FINDBUGS_HOME}/bin/findbugs FindBugsAnnotationsTest.class
Где ${FINDBUGS_HOME} — это каталог, в котором установлен Findbugs 1.3.9. Предполагается, что javac находится на пути.
Примечание. Я использовал findbugs.jar вместо annotations.jar и jsr305.jar, но с этой командой я получаю те же результаты:
javac -d . -classpath ${FINDBUGS_HOME}/lib/annotations.jar:${FINDBUGS_HOME}/lib/jsr305.jar FindBugsAnnotationsTest.java
person
Greg Mattes
schedule
11.09.2009