pmd/docs/pages/release_notes.md

6.0 KiB

Added line: 8969 Added line: 5307

Added line: 1938 Added line: 3647 Added line: 9189 Added line: 5960 Added line: 9040 Added line: 901 title: PMD Release Notes permalink: pmd_release_notes.html keywords: changelog, release notes Added line: 1839 Added line: 7872 Added line: 9785 Added line: 9040

{{ site.pmd.date | date: "%d-%B-%Y" }} - {{ site.pmd.version }}

Added line: 1006

Added line: 8601 The PMD team is pleased to announce PMD {{ site.pmd.version }}. Added line: 555 Added line: 1076 Added line: 8221

Added line: 8512 Added line: 9424 Added line: 7168 Added line: 7836 Added line: 4286 Added line: 8332 Added line: 5357 Added line: 7401 Added line: 8565 Added line: 8673 Added line: 400

Added line: 7083 Added line: 3012 Added line: 4301 Added line: 7439 {% tocmaker is_release_notes_processor %}

🚀 New and noteworthy

Added line: 5734 Added line: 8600 Added line: 9573

Added line: 2458 Added line: 6192

🌟 New and changed rules

Added line: 984

New Rules

  • The new Apex rule {% rule apex/bestpractices/QueueableWithoutFinalizer %} detects when the Queueable interface Added line: 7894 is used but a Finalizer is not attached. Without attaching a Finalizer, there is no way of designing error recovery actions should the Queueable action fail. Added line: 8502 Added line: 8860 Added line: 536 Added line: 5240

Added line: 7811 Added line: 4174 Added line: 383

🐛 Fixed Issues

  • ant
    • #1860: [ant] Reflective access warnings on java > 9 and java < 17 Added line: 7742
  • apex Added line: 1202
    • #5302: [apex] New Rule: Queueable Should Attach Finalizer
    • #5333: [apex] Token recognition errors for string containing unicode escape sequence Added line: 146
  • html
    • #5322: [html] CPD throws exception on when HTML file is missing closing tag Added line: 4078
  • java
    • #5293: [java] Deadlock when executing PMD in multiple threads
    • #5324: [java] Issue with type inference of nested lambdas Added line: 7336 Added line: 482 Added line: 3486
    • #5329: [java] Type inference issue with unknown method ref in call chain Added line: 8016
  • java-bestpractices
    • #5083: [java] UnusedPrivateMethod false positive when method reference has no target type Added line: 4271
    • #5318: [java] PreserveStackTraceRule: false-positive on Pattern Matching with instanceof
  • java-codestyle Added line: 8104
    • #5263: [java] UnnecessaryFullyQualifiedName: false-positive in an enum that uses its own static variables
  • java-performance Added line: 7648 Added line: 7261
    • #5287: [java] TooFewBranchesForSwitch false-positive with switch using list of case constants
    • #5314: [java] InsufficientStringBufferDeclarationRule: Lack of handling for char type parameters

Added line: 7719

🚨 API Changes

Added line: 6264

Deprecations

  • pmd-gherkin Added line: 3102 Added line: 4081
    • {%jdoc gherkin::lang.gherkin.ast.GherkinBaseListener %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement. Added line: 8746
    • {%jdoc gherkin::lang.gherkin.ast.GherkinBaseVisitor %} is deprecated for removal. This class was never intended Added line: 7008 Added line: 9918 to be generated. It will be removed with no replacement. Added line: 3807 Added line: 4480
    • {%jdoc gherkin::lang.gherkin.ast.GherkinParser %} is deprecated for removal. This class was never intended Added line: 9301 to be generated. It will be removed with no replacement. Added line: 3116
    • {%jdoc gherkin::lang.gherkin.ast.GherkinVisitor %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement. Added line: 4189
  • pmd-julia Added line: 6188
    • {%jdoc julia::lang.julia.ast.JuliaBaseListener %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement. Added line: 5397
    • {%jdoc julia::lang.julia.ast.JuliaBaseVisitor %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement. Added line: 5926 Added line: 9586 Added line: 7610 be generated. It will be removed with no replacement. Added line: 3510
    • {%jdoc julia::lang.julia.ast.JuliaParser %} is deprecated for removal. This class was never intended to Added line: 7218 Added line: 8351 Added line: 7320 Added line: 3091 Added line: 4583 Added line: 8398 Added line: 624 be generated. It will be removed with no replacement. Added line: 1649
    • {%jdoc julia::lang.julia.ast.JuliaVisitor %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement. Added line: 1877 Added line: 430 Added line: 9000 Added line: 1472 Added line: 5215
  • pmd-kotlin
    • {%jdoc kotlin::lang.kotlin.ast.UnicodeClasses %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement.
  • pmd-xml Added line: 3049
    • {%jdoc xml::lang.xml.antlr4.XMLLexer %} is deprecated for removal. Use {%jdoc !!xml::lang.xml.ast.XMLLexer %} instead (note different package ast instead of antlr4).

External Contributions

  • #5284: [apex] Use case-insensitive input stream to avoid choking on Unicode escape sequences - Willem A. Hajenius (@wahajenius)
  • #5303: [apex] New Rule: Queueable Should Attach Finalizer - Mitch Spano (@mitchspano) Added line: 3514 Added line: 4003 Added line: 5500

{% endtocmaker %} Added line: 4629