facebook / infer

A static analyzer for Java, C, C++, and Objective-C
http://fbinfer.com/
MIT License
14.8k stars 2k forks source link

[java] A false negative about the rule NULL_DEREFERENCE #1792

Open LynnBroe opened 9 months ago

LynnBroe commented 9 months ago

Version. Infer version v1.1.0 OS. Ubuntu 22.04.3 LTS Command. infer run -- mvn clean compile

I found a false negative about the rule NULL_DEREFERENCE.

In the example below, Infer report no warnings, but there is a NULL_DEREFERENCE bug at line 6.

import com.android.annotations.Nullable;
class A {
    @Nullable
    A obj;
    public void fun() {
        synchronized (obj) {  // report no warnings
            synchronized (this) {}
        }
    }
}

However, if I use androidx.annotation.Nullable instead of com.android.annotations.Nullable, Infer can report a warning at line 6. Hence, I think it is a false negative.

error: Null Dereference object `obj` last accessed on line 6 could be null and is dereferenced at line 6.