Make sure to read this post before raising a thread here:
Then tell us:
What language is this for? java
Which rule? S6832
Why do you believe it’s a false-positive/false-negative?
Without having the complete ApplicationContext in hand the rule can hardly decide whether the class is a “Singleton” in it. But I believe the rule should report it only, if there is a clear indication of the problem.
Are you using
SonarCloud? no
SonarQube - which version? no
SonarLint - which IDE/version? yes (10.4.1.77998) with IntelliJ IDEA 2023.3.4 Build #IU-233.14475.28
in connected mode with SonarQube or SonarCloud? no
How can we reproduce the problem? Give us a self-contained snippet of code (formatted text, no screenshots)
In the below example no injection in RandomClassWhichIsNotBean:
public class NonSingletonAutowiredInSingletonCheckSample {
@Scope("prototype")
public class PrototypeBean {
}
public class RandomClassWhichIsNotBean {
RandomClassWhichIsNotBean(PrototypeBean prototypeBean) {
}
}
}
As far as i could dig into the rule, i can see the following: If there isn’t any annotation on the class, the below method (hasNotSingletonScopeAnnotation) will return false, which marks the RandomClassWhichIsNotBean as a “Singleton”. But there is no evidence whether this class will play any role in the lifecycle of the ApplicationContext.