繁体   English   中英

声纳假阳性规则:不应取消引用空指针

[英]Sonar false-positive on rule: Null pointers should not be dereferenced

我对此通话有一个声纳警报minRating.getRatgCaam()

警报与声纳规则有关: 不应取消引用空指针。

例如:

AgencyRating minRating = null;
.......
if (!getRatingUtilities().isNR(minRating)) {
    return minRating.getRatgCaam(); //Sonar: Null pointers should not be dereferenced
}

isNR(minRating)方法是一个辅助方法,它在对象minRating为null时进行验证。

public boolean isNR(AgencyRating rating) {
    return rating == null || isNR(rating.getRatgCaam());
}

当我添加非空验证作为声纳提示时。 声纳还可以。

if (minRating !=null  && !getRatingUtilities().isNR(minRating)) {
    return minRating.getRatgCaam(); // no more alert
}

声纳无法确定helper方法是否执行了null验证。 我不需要再次进行此验证。

我的情况是假阳性吗?

这确实是一个误报,因为在撰写本文时,sonarqube java分析器(在撰写本文时为4.2.1版)不支持跨过程分析,因此对于条件为真,它无法确定确实如此。 ,minRating的值必须为非null。

这是我们目前正在努力研究的功能,以便能够关闭此类误报。

现在(sonarqube Java分析器版本4.3.0.7717)受支持并且可以正常运行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM