sonar scanner pricing java sonarqube

java - scanner - Sonarqube, "La cadena no contiene especificadores de formato" cuando se registra un mensaje de cadena constante



sonarqube linux (1)

Este es un problema conocido introducido con SonarJava 5.1. Puede considerar este problema de forma segura como Falso Positivo (FP) y / o ignorarlo. Ya se ha solucionado durante la gestión del ticket de JIRA SONARJAVA-2633 .

La solución se entregó con la versión 5.1.1 del analizador SonarJava, lanzada el 16 de febrero de 2018 (requiere SonarQube LTS 6.7 o superior).

Actualización para usuarios independientes de SonarLint

Para los usuarios de SonarLint que trabajan con versiones independientes (no conectadas a ninguna instancia de SonarQube), puede observar el problema dependiendo de la versión que esté usando. Si está utilizando:

  • SonarLint for Eclipse 3.5: incluye la versión 5.1.0.13090 de SonarJava, por lo que aún observará el FP en su código. La próxima versión usará una versión más reciente de SonarJava, por lo tanto resolviendo el problema. Se espera la próxima versión para fines de mayo / principios de junio de 2018.
  • SonarLint para IntelliJ 3.4 (lanzado el 9 de mayo de 2018): incluye SonarJava 5.3.0.13828 , lo que significa que el problema se ha solucionado. La actualización de su versión a la última versión publicada debería solucionar el problema.

SonarQube se queja de que " String no contiene especificadores de formato ". cuando se usa org.slf4j.Logger , en particular el método " public void debug(String msg) ". Por ejemplo

log.info("message");

Se refiere a esta regla: https://wiki.sei.cmu.edu/confluence/display/c/FIO47-C.+Use+valid+format+strings

Sin embargo, en esta regla, podemos encontrar la siguiente cita:

Cada especificación de conversión es introducida por el carácter% seguido (en orden) por

Cero o más indicadores (en cualquier orden), que modifican el significado de la especificación de conversión

¿Soy yo quien se pierde algo, o esta regla no está bien implementada? ¿Alguna experiencia con eso?