Отсутствует логарифмическое правило сонара - PullRequest
0 голосов
/ 16 мая 2018

Я почти уверен, что существует правило сонара, которое показывало пропущенные параметры.Пример:

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

Кто-нибудь знает, что случилось с правилом?

1 Ответ

0 голосов
/ 17 мая 2018

Насколько я могу судить, правило squid: S2275 от SonarJava должно правильно ставить вопрос о таком вызове с недостаточным количеством параметров. Я могу заставить анализатор SonarJava поднимать проблему локально с помощью последней выпущенной версии (5.3).

Однако, похоже, что в какой-то момент поведение правила было улучшено для правильной обработки библиотеки sl4fj (см. Тикет 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. Обновление вашего плагина SonarJava из вашего экземпляра SonarQube до последней выпущенной версии должно исправить проблему и вернуть ожидаемое поведение правила.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...