Release Notes - SonarJava - Version 6.11.0.24617
Bug
- [SONARJAVA-3609] - JAR files passed to sonar.java.libraries remain locked after the analysis on Windows
- [SONARJAVA-3652] - SuppressWarnings Filter lose knowledge of filtered lines
New Feature
- [SONARJAVA-3614] - Rule S6073: Mockito argument matchers should be used on all parameters
- [SONARJAVA-3630] - Rule S6103: AssertJ assertions with "Consumer" arguments should contain assertion inside consumers
- [SONARJAVA-3632] - Rule S6104: Map "computeIfAbsent()" should not be used to add "null" values.
- [SONARJAVA-3637] - Introduce "sonar.java.jdkHome" to specify the JDK to be used by the analyzer to resolve JDK types
Task
- [SONARJAVA-3644] - Update rule metadata
Improvement
- [SONARJAVA-2154] - Reduce plugin size by removing guava dependency
- [SONARJAVA-3581] - S1994: Add a message on the secondary location
- [SONARJAVA-3582] - S2886: Add a message on the secondary location
- [SONARJAVA-3583] - S3516: Add a message on the secondary location
- [SONARJAVA-3584] - S1764: Add a message on secondary locations
- [SONARJAVA-3585] - S2115: Add a message on secondary locations
- [SONARJAVA-3589] - S2229: Add a message on secondary locations
- [SONARJAVA-3590] - S3415: Add a message on secondary locations
- [SONARJAVA-3591] - S2139: Add a message on secondary locations
- [SONARJAVA-3592] - S1191: Add a message on secondary locations
- [SONARJAVA-3593] - S3010: Add a message on secondary locations
- [SONARJAVA-3594] - S135: Add a message on secondary locations
- [SONARJAVA-3595] - S4288: Add a message on secondary locations
- [SONARJAVA-3596] - S4276: Add a message on secondary locations
- [SONARJAVA-3597] - S2786: Improve the primary message so that the secondary location becomes obvious
- [SONARJAVA-3634] - Extend rule S1860 according to JEP 390: Warnings for Value-Based Classes
- [SONARJAVA-3638] - Rule S2384: change rule type to Code-Smell
- [SONARJAVA-3645] - Improve debug logs
- [SONARJAVA-3651] - S4925: add support for DB2 JDBC Type 4 driver.
- [SONARJAVA-3654] - Provide MongoDB Nullness annotations to the SE engine
- [SONARJAVA-3655] - Update S6068 to cover latest mockito version
False-Positive
- [SONARJAVA-3467] - FP on S1948 when using both field and setter/constructor injection
- [SONARJAVA-3574] - S2755 FP when Factory is declared with lombok "val"
- [SONARJAVA-3578] - FP in S2147 when the type of the Exception is needed inside the body.
- [SONARJAVA-3620] - FP in S2384 when unmodifiable collection is returned from a non-final field
- [SONARJAVA-3628] - FP in S5853 when assertions "flatExtracting" prevent the chaining
- [SONARJAVA-3633] - FP in S4032 when there are several source directories
- [SONARJAVA-3642] - FP in S1874 when parent constructor is deprecated but not used
- [SONARJAVA-3647] - FP in S1481 when "for-each" variable nested in a lambda is actually used in the body
- [SONARJAVA-3650] - FP in S2970 for nested class using JUnit 5 Soft assertions extension.
False Negative
- [SONARJAVA-3555] - S4830 should support X509ExtendedTrustManager
- [SONARJAVA-3575] - FN in S2095: support Apache commons IOUtils methods not closing the stream
- [SONARJAVA-3626] - FN Rule S3824: Apply the same SymbolicValue for static constants or enum constants when used as MemberSelect