Release Notes - SonarJava - Version 6.15 - HTML format


  • [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


  • [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


  • [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


  • [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.

Edit/Copy Release Notes

The text area below allows the project release notes to be edited and copied to another document.