Package has following package-info.java:
@ParametersAreNonnullByDefault
package foo;
import javax.annotation.ParametersAreNonnullByDefault;
Class has the following method:
private static String toIsoString(@Nullable Instant dateTime) {
return dateTime == null ? null : dateTime.toString();
}
On which SonarQube (Version 6.2, SonarJava 4.14.0.11784) gives the following warning (squid:S2583):
How can I convince SonarQube that the code is actually correct?
Interestingly, SonarLint plugin (3.0.0.2041) in Idea doesn't generate the same warning.
Apparently, this problem was caused by us using sonar-scanner
without specifying sonar.java.libraries
. Since it's multimodule maven project it wasn't clear to us how to specify sonar.java.libraries
correctly.
Nicolas Peru, from SonarSource, suggested that we should use sonar maven plugin, instead of sonar-scanner
, as the plugin has access to build classpath of the project. Indeed that solved this problem for us.