Das Paket enthält folgende package-info.java:
%Vor%Klasse hat die folgende Methode:
%Vor%Auf dem SonarQube (Version 6.2, SonarJava 4.14.0.11784) gibt die folgende Warnung (Tintenfisch: S2583):
Wie kann ich SonarQube davon überzeugen, dass der Code tatsächlich korrekt ist?
Interessanterweise erzeugt das SonarLint-Plugin (3.0.0.2041) in Idea nicht die gleiche Warnung.
Offensichtlich wurde dieses Problem dadurch verursacht, dass wir sonar-scanner
verwendeten, ohne sonar.java.libraries
anzugeben. Da es sich um ein Multimodul-Maven-Projekt handelt, war uns nicht klar, wie sonar.java.libraries
richtig zu spezifizieren ist.
Nicolas Peru von SonarSource schlug vor, dass wir anstelle von sonar-scanner
das Plugin "sonar maven" verwenden sollten, da das Plugin Zugriff auf den Klassenpfad des Projekts hat. Tatsächlich hat das dieses Problem für uns gelöst.
Der JavaDoc von @Nullable
sagt (Betonung meiner)
Diese Anmerkung eignet sich hauptsächlich zum Überschreiben einer Nonnull-Annotation. Statische Analysetools sollten die kommentierten Elemente im Allgemeinen so behandeln, als ob sie keine Annotation hätten , es sei denn, sie sind so konfiguriert, dass sie falsch negative Ergebnisse minimieren.
Entsprechend ignoriert SonarJava die Anmerkung.
Wenn Sie das Vorgehen in SonarJava in Frage stellen möchten, rufen Sie einen Thread auf : -)