Release Notes - SonarJava - Version 2.8 - HTML format

Bug

  • [SONARJAVA-735] - FP S1226/parameter reassigned: Annotation on method with same parameter name as method parameter should not raise an issue
  • [SONARJAVA-807] - In some corner cases, the "Architectural Constraint" rule can log some issues on line '0' and this is prohibited by the SonarQube platform
  • [SONARJAVA-813] - RedundantTypeCastCheck is not releasing excluded nodes

New Feature

  • [SONARJAVA-57] - Make it possible to use rule keys as parameters of the Java annotation @SuppressWarnings
  • [SONARJAVA-73] - Rule "Unused private fields" should not log violation on fields having the @Getter (Lombok) and @Produces annotations
  • [SONARJAVA-498] - Rule: Constructors should only call final methods
  • [SONARJAVA-810] - Rule: S2111 "BigDecimal(double)" should not be used
  • [SONARJAVA-811] - Rule: Reflection should not be used to check non-runtime annotations
  • [SONARJAVA-812] - Semantic: Symbol metadata should be available in symbol table
  • [SONARJAVA-814] - Rule: "wait(...)", "notify()" and "notifyAll()" methods should only be called when a lock is obviously held on an object
  • [SONARJAVA-815] - Rule: "Iterator.next()" methods should throw "NoSuchElementException"
  • [SONARJAVA-816] - Rule: "wait(...)" should be used instead of "Thread.sleep(...)" when a lock is held
  • [SONARJAVA-817] - Rule: "Object.wait(...)" and "Condition.await(...)" should always be called inside a "while" loop
  • [SONARJAVA-819] - Rule: S2278 DES (Data Encryption Standard) and DESede (3DES) should not be used
  • [SONARJAVA-820] - Rule:S2277 Cryptographic RSA algorithms should always incorporate OAEP (Optimal Asymmetric Encryption Padding)
  • [SONARJAVA-822] - Rule: Values passed to LDAP queries should be sanitized
  • [SONARJAVA-823] - Rule: ".equals()" should not be used to test the values of "Atomic" classes
  • [SONARJAVA-824] - Rule: Short-circuit logic should be used in boolean contexts
  • [SONARJAVA-825] - Rule: Values passed to OS commands should be sanitized
  • [SONARJAVA-828] - Rule: Printf-style format strings should not lead to any runtime unexpected behavior
  • [SONARJAVA-831] - Rule: Classes and methods that rely on the default system encoding should not be used
  • [SONARJAVA-832] - Rule: "Cloneables" should implement "clone"
  • [SONARJAVA-833] - Rule: Modulus results should not be checked for direct equality
  • [SONARJAVA-836] - Rule: S2151 "runFinalizersOnExit" should not be called
  • [SONARJAVA-837] - Rule: S2127 "Double.longBitsToDouble" should not be used for "int"
  • [SONARJAVA-838] - Rule: Synchronisation should not be based on Strings or boxed primitives

Improvement

  • [SONARJAVA-763] - FP S1698/== comparison of object : Parametrized method should have unresolved types
  • [SONARJAVA-773] - FP: Unused variables should not raise issue for lambdas parameter
  • [SONARJAVA-826] - S1481 / "Unused local variables should be removed" should raise issues on variables which are only assigned
  • [SONARJAVA-827] - Rule: "hashCode" and "toString" should not be called on array instances
  • [SONARJAVA-829] - Semantic: Method resolution should support autoboxing
  • [SONARJAVA-835] - Update misra tags

Edit/Copy Release Notes

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