The following method triggers an S3400:
/**
* Default priority is 6.
*
* @return the priority of the renderer if it is applicable
*/
protected int getPriority() {
return 6; //NOSONAR: protected method in abstract class = meant to be overwritten or extended.
}
As stated in our NOSONAR comment, we really don’t expect it there, for the reason mentioned.
Hello Alain,
I assume this code fragment is in Java, which IDE are you using ?
I tried to reproduce on IntelliJ, but I was not able to. Using the NOSONAR comment prevents the issue.
Are you connected to SonarQube or SonarCloud ?
This is SonarLint for Eclipse 5.9.0.31414, standalone
I know that the NOSONAR quiets the issue, but IMHO this is a false positive.
Ok sorry I misunderstood.
I think it can be considered as a false positive for methods that are overridden. I will forward this to the team in charge that will decide.
I can also advise 2 things that would get rid of the issue:
- extract the literal value to a constant and give it a meaningful name
- if it’s a fixed value in every subclass, you could make it a constructor parameter
A last question: do you also observe the false positive in SonarQube (or SonarCloud) ?
This is used stand-alone.
1 Like
Hi @Alain_Picard,
I think we can consider your code sample as a false-positive. So I created SONARJAVA-3995 to improve the rule.
Thanks for your contribution,
Alban