Release Notes - SonarJava - Version 2.9.1 - HTML format


  • [SONARJAVA-432] - Rule "S00115" on constant naming convention incorrectly assumes that all static final fields are constants
  • [SONARJAVA-809] - FP: S1710 RepeatAnnotationCheck : issue should be raised only for @Repeatable annotations
  • [SONARJAVA-821] - FP: S1452 : Return parametrized type with wildcard should not raise issue on overriden methods
  • [SONARJAVA-834] - FP: S1452 wildcard in return type should not raise issue for Class literals.
  • [SONARJAVA-849] - Rule: Fields in non-serializable classes should not be "transient"
  • [SONARJAVA-858] - An AnnotationInstance which is created from source does not have the correct type symbol
  • [SONARJAVA-860] - Method resolution may be incorrect with autoboxing
  • [SONARJAVA-861] - Public Api metric should ignore getter and setters when property : is set to true
  • [SONARJAVA-876] - Method reference should have a type defined
  • [SONARJAVA-878] - should not be checked for existing files when source is empty to support multi-module projects with old version of sonar-maven plugin
  • [SONARJAVA-880] - Fix compatibility issue with sonarqube 5.0+

New Feature

  • [SONARJAVA-339] - Rule "@SuppressWarnings annotation should not be used to suppress any kind of warnings"
  • [SONARJAVA-840] - Rule: The non-serializable super class of a "Serializable" class must have a no-argument constructor
  • [SONARJAVA-842] - Rule: Non-serializable classes should not be written
  • [SONARJAVA-843] - Rule: "Serializable" inner classes of non-serializable classes should be "static"
  • [SONARJAVA-845] - Rule: "Serializable" inner classes of "Serializable" classes should be static
  • [SONARJAVA-846] - Rule: "Serializable" classes should have a version id
  • [SONARJAVA-847] - Rule: Comparators should be "Serializable"
  • [SONARJAVA-850] - Generics in semantic analysis
  • [SONARJAVA-851] - Rule: Custom serialization method signatures should meet requirements
  • [SONARJAVA-852] - Rule: Class names should not shadow interfaces or superclasses
  • [SONARJAVA-853] - Rule: Redundant modifiers should not be used
  • [SONARJAVA-854] - Rule: Math should not be performed on floats
  • [SONARJAVA-855] - Rule: Parsing should be used to convert "Strings" to primitives
  • [SONARJAVA-856] - Rule: Classes named like "Exception" should extend "Exception" or a subclass
  • [SONARJAVA-857] - Rule: "final" classes should not have "protected" members
  • [SONARJAVA-859] - Rule: Boxing and unboxing should not be immediately reversed
  • [SONARJAVA-862] - Rule: S2386 Interfaces should not have "public static" mutable fields
  • [SONARJAVA-863] - Rule: S2257 Only standard cryptographic algorithms should be used
  • [SONARJAVA-864] - Rule: S2326 Unused type parameters should be removed
  • [SONARJAVA-865] - Rule: S2183 Ints and longs should not be shifted by more than their number of bits-1



  • [SONARJAVA-871] - Support rule key from other java rule engine for @SuppressWarnings

Edit/Copy Release Notes

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