Unterdrücken von FindBugs-Warnungen für Felder oder lokale Variablen

Ich möchte FindBugs-Warnungen für bestimmte Felder oder lokale Variablen unterdrücken. FindBugs dokumentiert, dass das Ziel Typ, Feld, Methode, Parameter, Konstruktor, Paket für seine Annotation edu.umd.cs.findbugs.annotations.SuppressWarning [1] sein kann. Es funktioniert jedoch nicht, das Feld mit Anmerkungen zu versehen, nur wenn ich die Methode mit Anmerkungen versehen habe, wird die Warnung unterdrückt.

Eine ganze Methode zu kommentieren, scheint mir zu umfassend. Gibt es eine Möglichkeit, Warnungen in bestimmten Feldern zu unterdrücken? Es gibt eine andere verwandte Frage [2], aber keine Antwort.

[1]http://findbugs.sourceforge.net/manual/annotations.html

[2]Unterdrücken Sie FindBugs-Warnungen in Eclipse

Demo-Code:

public class SyncOnBoxed
{
    static int counter = 0;
    // The following SuppressWarnings does NOT prevent the FindBugs warning
    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE")
    final static Long expiringLock = new Long(System.currentTimeMillis() + 10);

    public static void main(String[] args) {
        while (increment(expiringLock)) {
            System.out.println(counter);
        }
    }

    // The following SuppressWarnings prevents the FindBugs warning
    @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE")
    protected static boolean increment(Long expiringLock)
    {
        synchronized (expiringLock) { // <<< FindBugs warning is here: Synchronization on Long in SyncOnBoxed.increment()
            counter++;
        }
        return expiringLock > System.currentTimeMillis(); // return false when lock is expired
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage