缺少记录参数声纳规则

时间:2018-05-16 05:08:00

标签: java logging sonarqube

我很确定存在声纳规则,显示缺少参数。 例如:

   LOG.info( "Sonar issue {}{}{}", "Missing", "1 parameter" );

有谁知道该规则发生了什么?

1 个答案:

答案 0 :(得分:1)

据我所知,来自SonarJava的规则squid:S2275应该在没有足够参数的情况下正确地提出这样的呼叫问题。我可以让SonarJava分析器在本地使用最新发布的版本(5.3)提出问题。

但是,似乎在某些时候,规则的行为已得到改进,无法正确处理sl4fj库(请参阅ticket SONARJAVA-2588)。这已经与 SonarJava 5.1.1 一起提供。

其他一点,在SonarJava 4.9规则的初始实现中已分为两部分(见SONARJAVA-2208):

  • squid:S2275:Printf样式的格式字符串不应导致运行时的意外行为
  • squid:S3457:应正确使用Printf样式的格式字符串

因此,您的质量档案中可能未启用这两项规则中的一项。但是,它应该仍然是S2275,这应该会引起你的问题。所以我希望规则仍然可以启用。这两个规则都是默认 Sonar Way 质量配置文件的一部分。

现在,因为您使用的是SonarJava 5.0.1 ,您可能无法从最新修复中获益,从而改善了对slf4j的支持。从SonarQube实例更新 SonarJava插件到最新发布的版本应解决问题并恢复规则的预期行为。