Release Notes - SonarJava - Version 6.15.0.25849
Bug
- [SONARJAVA-3786] - Delete rule RSPEC-4603
- [SONARJAVA-3788] - Fix IndexOutOfBoundsException in S1166 (CatchUsesExceptionWithContextCheck:307)
- [SONARJAVA-3789] - Fix ClassCastException in S6202 (IsInstanceMethodCheck:70)
- [SONARJAVA-3790] - Fix ClassCastException in S5411 (BoxedBooleanExpressionsCheck:158)
- [SONARJAVA-3792] - Compilation of custom rule project fails due to missing metadata files
New Feature
- [SONARJAVA-3716] - Provide a user property to produce performance metrics
- [SONARJAVA-3741] - Rule S6202: Operator "instanceof" should be used instead of "A.class.isInstance()"
- [SONARJAVA-3743] - Rule S6203: Text blocks should not be used in complex expression
- [SONARJAVA-3749] - Rule S6205: Switch arrow labels should not use redundant keywords
- [SONARJAVA-3753] - Rule S6208: Comma-separated labels should be used in Switch with colon case
- [SONARJAVA-3759] - Rule S6212: Local-Variable Type Inference (var) should be used
- [SONARJAVA-3761] - Rule S6213: Restricted Identifiers should not be used as Identifiers
Task
- [SONARJAVA-3714] - Collect SquidSensor runtime data
- [SONARJAVA-3717] - Increase reliability of cirrus-ci nightly analyses by restarting some failed jobs
- [SONARJAVA-3720] - Push internal CI performance metrics to repository
- [SONARJAVA-3721] - Enable performance measurement for ruling
- [SONARJAVA-3722] - Compute measurement cost in performance metrics
- [SONARJAVA-3726] - Update tutorial with SQ 8.8 and latest embedded release of SonarJava
- [SONARJAVA-3728] - Update rules metadata
- [SONARJAVA-3793] - Drop usage of deprecated internal method "hasSemantic()" in our rules
Improvement
- [SONARJAVA-3666] - Add text block support for regex rules
- [SONARJAVA-3715] - Add size of file to slowest files analyzed output
- [SONARJAVA-3732] - Execute the move of the regex parser into analyzer-commons
- [SONARJAVA-3736] - Support Text Block in rules relying on String literals from expressions
- [SONARJAVA-3737] - Improve rules relying on String literals to support identifier from a final or effectively final variable.
- [SONARJAVA-3744] - Extend existing rules to support Switch Expression
- [SONARJAVA-3751] - Extend S4738 to suggest Java 9 "List.of", "Map.of", "Set.of" instead of Guava
- [SONARJAVA-3762] - S5838 should support Java 11 "String.isBlank()"
- [SONARJAVA-3766] - Improve rule description for ReDoS
- [SONARJAVA-3778] - Fix performance hotspots in S103 due to slow regex
- [SONARJAVA-3781] - All method overrides should be returned instead of only the first one
- [SONARJAVA-3787] - Children of Switch Statement should not be a Switch Expression
- [SONARJAVA-3796] - Fix possible Catastrophic backtracking in regex for S3518: Division by zero rule
False-Positive
- [SONARJAVA-3731] - S5786 should not report on abstract classes or overridding test methods
- [SONARJAVA-3734] - FP in S5979 when "ExtendWith" annotation is coming from a meta-annotation
- [SONARJAVA-3750] - S1199 should not report an issue for any Switch case containing a block
- [SONARJAVA-3772] - FP in S1943: Do not report an issue on any usage of Java 11 FileWriter and FileReader
- [SONARJAVA-3774] - S2755 should not raise when a non null resolver is set with XMLInputFactory.setXMLResolver
- [SONARJAVA-3776] - Fix FPs in S4276 when the generic argument left is a primitive wrapper
False Negative
- [SONARJAVA-3757] - "Nullable" from eclipse should be considered as a Strong Nullable.