Продолжать получать возможные разыменования нулевого указателя в findbug? - PullRequest
0 голосов
/ 27 апреля 2020

Не понимаю, почему я получаю разыменование возможного нулевого указателя в findbug? Я видел несколько примеров того, как это исправить, но я все еще получаю ошибку. Пожалуйста, дайте мне несколько советов.


static final ConcurrentHashMap<WFGaugeFactor,AtomicDouble> GAUGE_FACTORS = new ConcurrentHashMap<>();

public void handleGauge(String name, List<Tag> tags, double value) {
        String gaugeKey = gaugeKey(name, tags);

        if (GAUGE_CACHE != null && !GAUGE_CACHE.containsKey(gaugeKey)) {
            GAUGE_CACHE.put(gaugeKey, new AtomicDouble());
        }
        AtomicDouble gaugeValue =  getGaugeValue(gaugeKey) == null ? new AtomicDouble() : getGaugeValue(gaugeKey);
        System.out.println("Value:" + gaugeValue.doubleValue());
}

    @CheckForNull
    private AtomicDouble getGaugeValue(String key) {
        if (GAUGE_CACHE != null && GAUGE_CACHE.get(key) != null) {
            return GAUGE_CACHE.get(key);
        } else {
            return new AtomicDouble();
        }
    }

Отображается ошибка:

Code    Warning
NP  Possible null pointer dereference in handleGauge(String, List, double) due to return value of called method
Details
NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE: Possible null pointer dereference due to return value of called method
The return value from a method is dereferenced without a null check, and the return value of that method is one that should generally be checked for null. This may lead to a NullPointerException when the code is executed.```
...