SonarJava v6.8.0.23379 Release Notes

Release Date: 2020-09-23 // over 3 years ago
  •     Release Notes - SonarJava - Version 6.8
    

    🆕 New Feature

    • ✅ [SONARJAVA-3372] - Rule S5803: Class members annotated with @VisibleForTesting should not be accessed from production code
    • [SONARJAVA-3509] - Rule S5958: AssertJ "assertThatThrownBy" should not be used alone
    • ✅ [SONARJAVA-3511] - Rule S5961: Test methods should not contain too many assertions
    • ✅ [SONARJAVA-3514] - Rule S5967: Tests method should not be annotated with competing annotations
    • [SONARJAVA-3515] - Rule S5960: Assertions should not be used in production code
    • 🤡 [SONARJAVA-3516] - Rule S5969: Mocking all non-private methods of a class should be avoided
    • [SONARJAVA-3517] - Rule S5970: Spring's ModelAndViewAssert assertions should be used instead of other assertions
    • ✅ [SONARJAVA-3522] - Rule S3414: Tests should be kept in a dedicated source directory
    • ✅ [SONARJAVA-3524] - Rule S5973: Tests should be stable
    • ✅ [SONARJAVA-3526] - Rule S5976: Similar tests should be grouped in a single Parameterized test
    • ✅ [SONARJAVA-3527] - Rule S5977: Tests should use fixed data instead of randomized data

    Task

    • ⚡️ [SONARJAVA-3036] - Update to common-xml-parser version 1.12
    • ✅ [SONARJAVA-3520] - Add S3577: "Test classes should comply with a naming convention" in Sonar way
    • 📇 [SONARJAVA-3533] - Update rules metadata

    👌 Improvement

    • [SONARJAVA-3476] - Improve issue location for S5843
    • 📜 [SONARJAVA-3481] - Add missing escape sequences to regex parser
    • [SONARJAVA-3485] - Change issue type of S899 to Bug
    • [SONARJAVA-3492] - S1215 should detect "System.runFinalization()" the same way it detects System.gc()
    • ✅ [SONARJAVA-3500] - Support latest version of Play framework in S3330 and S2092
    • ✅ [SONARJAVA-3513] - Improve S5810 to support static and test methods with return values
    • [SONARJAVA-3518] - S125: reports issue on whole commented block
    • 🚚 [SONARJAVA-3521] - SuppressWarnings Filter should remove issue of S3740 when "rawTypes" is used
    • ✅ [SONARJAVA-3523] - Extend S3415 (Arguments order) to support TestNG assertions
    • ✅ [SONARJAVA-3531] - S2187 should consider methods annotated with "@State" from Pact framework as test methods

    False-Positive

    • [SONARJAVA-3477] - S1214 should report only when an interface contains only constants
    • [SONARJAVA-3498] - FP in S1193 for instance of non-throwable types
    • [SONARJAVA-3504] - FP on S1948 for fields having non-serializable interface as type but serializable type as initializer
    • [SONARJAVA-3506] - FP in S2275 when second argument of String.format is an array
    • [SONARJAVA-3507] - FP in S3012 when copying array of primitives types to a Collection
    • [SONARJAVA-3519] - FP on S3878 when the argument before the vararg is also an array
    • 🤡 [SONARJAVA-3528] - FP on S5778 when calling mockito methods
    • ✅ [SONARJAVA-3530] - FP on S3577 when test class ends with "Tests" or is an abstract class
    • [SONARJAVA-3534] - FP S3077(VolatileNonPrimitiveFieldCheck) should consider enum as immutable

    False Negative

    • [SONARJAVA-3491] - FN S2789 (NullShouldNotBeUsedWithOptionalCheck) on null assignment
    • [SONARJAVA-3501] - FN on Unused Imports when using Lombok