8.4.0.37032
Release notes - SonarJava - 8.4
Bug
SONARJAVA-4262 S1226 should fail its analysis because the CFG builder cannot recover the yield argument
SONARJAVA-4480 Bug in rule S1066 quickfix: preserve conditional logic when collapsing if by using parentheses
SONARJAVA-4950 S6204: IndexOutOfBoundsException when lombok.val is used
SONARJAVA-4961 S6916: Quickfix suggesting to merge single if into existing pattern guard does not take operators precedence into account
SONARJAVA-4963 Line and column positions are wrong after text blocks using '\' line continuations
SONARJAVA-5059 S6901: ClassCastException when certain thread-related methods are called on `this`
SONARJAVA-5080 S1659: Quickfix breaks syntax when multiple arrays are declared
Documentation
SONARJAVA-5020 Clarify documentation about sonar.java.skipUnchanged (need to notify doc team)
False-Positive
SONARJAVA-3829 S2629 should not report when log level is enabled
SONARJAVA-3882 Don't complain about ImmutableSet.of and ImmutableMap.of in S4738
SONARJAVA-3970 Rule S1989 should consider tokens as case sensitive
SONARJAVA-4022 FP S5960 when analyzing package containing ".it."
SONARJAVA-4061 S2226 should ignore fields assigned in `init` method
SONARJAVA-4238 S2924 should not report on non-private rules declared inside of abstract classes
SONARJAVA-4287 S3012 has a false positive when using either auto boxing or auto unboxing
SONARJAVA-5058 S1144: FP when encountering nested class's private method without semantics
SONARJAVA-5079 S6857 FP when SpEL don't have "#{...}"
SONARJAVA-5089 FP in S1312 for interfaces
SONARJAVA-5091 FP in S6813 when Quarkus is used
SONARJAVA-5096 S1764: FP on expressions with side-effects
SONARJAVA-5098 FP in S3457 when using strings involving \\n
SONARJAVA-5099 FP on S1144 if @MethodSource is used without arguments
SONARJAVA-5115 FP in S5803: issue should not be raised when (otherwise = androidx.annotation.VisibleForTesting.PROTECTED) is specified
SONARJAVA-5116 java:S1105 sometimes falsely requests the curly brace to be moved to the previous line
False Negative
SONARJAVA-5120 S1182: Super call that are not directly in the scope of the method are wrongly taken into account
Task
SONARJAVA-5114 Undo deprecation of SE rules
SONARJAVA-5135 Update rules metadata
Improvement
SONARJAVA-5111 S5838 Improve quickfix to suggest "isEmpty()" when assert is called with "size()" and "isEqualTo(0)"
SONARJAVA-5126 S6916 should not raise when there is a default clause