Releases: SonarSource/sonar-java
8.6.0.37351
Release notes - SonarJava - 8.6
Bug
SONARJAVA-5015 Improve the tolerance to syntax errors when parsing switch expressions
Documentation
SONARJAVA-5179 Improve Javadoc in MethodMatchers.java
Task
SONARJAVA-5167 Bump org.springframework.security:spring-security-web from 6.2.3 to 6.2.7 in /java-checks-test-sources/spring-3.2
SONARJAVA-5173 Fix broken docs for SQ_10_6.
SONARJAVA-5182 Update rule metadata with new code impacts
8.5.0.37199
Release notes - SonarJava - 8.5
Documentation
SONARJAVA-5144 Update Custom rules documentation regarding Testing
New Feature
SONARJAVA-4544 Support @org.jspecify.annotations.Nullable and @org.jspecify.annotations.NonNull in existing nullability checks
SONARJAVA-4545 Support @org.jspecify.annotations.NonNull in existing nullability checks
SONARJAVA-4546 Support @org.jspecify.annotations.NullMarked in existing nullability checks up to Package Level
SONARJAVA-4547 Rule S6665: Redundant nullability annotations check
Sub-task
SONARJAVA-5083 Add unit test samples for Java 22 unnamed variables and patterns
SONARJAVA-5084 Identify the rules affected by the unnamed variables and patterns feature (i.e. unused parameter)
SONARJAVA-5085 Review the Java 22 JEP impact on existing rules
Task
SONARJAVA-5148 Update rules metadata
Improvement
SONARJAVA-4462 Add a QuickFix for S6485
SONARJAVA-5138 [Support Java 22] Update Eclipse Compiler for Java 3.39.0
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
8.3.0.36747
Release notes - SonarJava - 8.3
Task
SONARJAVA-5102 Remove rules superseded by DBD implementations from Sonar way
8.2.0.36672
8.1.0.36477
Release notes - SonarJava - 8.1
Documentation
SONARJAVA-5050 Update rule metadata with correct scope
Task
SONARJAVA-5055 Update Rules Metadata
Improvement
SONARJAVA-5045 Enable batch of rules for test 1/3 part 2
SONARJAVA-5046 Enable batch of rules for test 2/3 part 2
SONARJAVA-5047 Enable batch of rules for test 3/3 part 2
SONARJAVA-5049 Generate CheckList during build time
8.0.1.36337
8.0.0.36314
Release notes - SonarJava - 8.0
Task
SONARJAVA-4975 Create custom rules plugin around symbolic execution engine
7.35.0.36271
Release notes - SonarJava - 7.35
Task
SONARJAVA-4951 Replace InternalCheckVerifier with JavaCheckVerifier
SONARJAVA-4974 Update custom rule documentation with new CheckVerifier API
SONARJAVA-5021 Update Rules Metadata
Improvement
SONARJAVA-4988 Use SonarLintCache component and make it accessible to custom rules via the caching APIs
7.34.0.35958
Release notes - SonarJava - 7.34
Bug
SONARJAVA-4934 On-demand plugin downloading ignore jsp files
False-Positive
SONARJAVA-4520 Rule S3655: False Positive with JUnit assertions
SONARJAVA-4529 FP on rule S3740 when instanceof with variable is used on raw types
SONARJAVA-4699 FP on S3516 when calling a method using objects from "unknown" packages
SONARJAVA-4741 FP on S6857 for special default values in property placeholders
SONARJAVA-4933 FP on S1068 with lombok @DaTa, @Getter, @Setter annotations
SONARJAVA-4937 FP on S1118 when using Lombok generated constructors with private access
SONARJAVA-4943 FP on S1144 if private method is referenced by name in annotations
SONARJAVA-4944 FP on S2699 on SpringBoot sanity test "contextLoads"
Task
SONARJAVA-4936 Allow rules to analyze both main and test code
SONARJAVA-4952 Update Rules Metadata
SONARJAVA-4953 Update External Linters Metadata
SONARJAVA-4956 Update parent pom
Improvement
SONARJAVA-4935 S1192 should not report on individual lines of multi line string literal
SONARJAVA-4939 Enable batch of rules for tests (1/3)
SONARJAVA-4940 Enable batch of rules for tests (2/3)
SONARJAVA-4941 Enable batch of rules for tests (3/3)
SONARJAVA-4942 [S6437] Update list of affected method signatures