SonarQube鱿鱼的假阳性:S2583

时间:2016-01-18 06:29:55

标签: sonarqube

注意:此处的代码只是重新创建的最小代码,导致此问题的代码实际上涉及InitialContext对象。

SonarQube规则squid:S2583,

  

更改此条件,使其不会始终评估为" true"

当实例化对象时,

似乎会产生误报,即使构造函数抛出了已检查的异常。作为一个最小的例子,

public void falsePositive()
{
  TestObject myValue = null;
  try
  {
    myValue = new TestObject();
  }
  catch (Exception e)
  {
    e.printStackTrace();
  }
  finally
  {
    if (myValue != null)
    {
      System.out.println("Not null");
    }
  }
}

TestObject声明为

public class TestObject
{
  public TestObject() throws Exception
  {
    throw new Exception();
  }
}

这会在if (myValue != null)行产生问题,这意味着myValue始终为非空,显然不是这样。

这是规则中的错误,还是我在这里遗漏了什么?

1 个答案:

答案 0 :(得分:3)

此问题是由于某些流量分析错误导致的,并已在声纳java插件版本3.9

中解决