Release Notes - SonarJava - Version 7.2.0.26923
Bug
- [SONARJAVA-3872] - "JSymbol.convertMetadata" should not throw an Exception when ecj fails
- [SONARJAVA-3897] - Fix S1845(MembersDifferOnlyByCapitalizationCheck) duplicated issues
- [SONARJAVA-3904] - Java 16's record keyword and sealed classes-related keywords should be highlighted as keywords
New Feature
- [SONARJAVA-3745] - Implement rule S6204: Use Stream.toList() instead of collectors
- [SONARJAVA-3748] - Implement rule S6206: Use records to represent immutable data structures
- [SONARJAVA-3752] - Implement rule S6207: Avoid redundant constructors/methods in records
- [SONARJAVA-3754] - Implement rule S6209: Ignored members during record serialization
- [SONARJAVA-3758] - Implement rule S6211: Prefer overriding default record's getter
- [SONARJAVA-3768] - Implement rule S6216: Reflection should not be used to update record's field value
- [SONARJAVA-3771] - Implement rule S6218: Equals should be overridden in the record with array fields
- [SONARJAVA-3773] - Implement rule S6219: Don't set 'serialVersionUID' to '0L' in records
Task
- [SONARJAVA-3894] - [AutoScan] batchMode should support multi-modules scope
- [SONARJAVA-3903] - Update rules metadata
Improvement
- [SONARJAVA-3740] - Extend rule S1481 to report on unused variables in pattern matching on instanceof
- [SONARJAVA-3746] - Extend rule S2201 to support 'Stream' non-void terminal methods
- [SONARJAVA-3755] - Update rule S2057 to not report on 'Serializable' records
- [SONARJAVA-3760] - Improve rule S2094: 'Classes should not be empty' to support Records
- [SONARJAVA-3763] - Support Records in rules targeting Classes
- [SONARJAVA-3769] - Remove record fields from reporting in S3011: Reflection fields update
- [SONARJAVA-3902] - Use secondary locations in S1845 (Members differs only by capitalization)
False-Positive
- [SONARJAVA-3892] - Exclude "com.sun.jersey" and "com.sun.faces" from S1191 by default
- [SONARJAVA-3898] - Don't apply S5838 for calls to equals in methods with "equals" in the name
- [SONARJAVA-3901] - FP in S2245 (PseudeRandomCheck) when passing a SecureRandom object as parameter