4.9 KiB
4.9 KiB
title | permalink | keywords |
---|---|---|
PMD Release Notes | pmd_release_notes.html | changelog, release notes |
{{ site.pmd.date | date: "%d-%B-%Y" }} - {{ site.pmd.version }}
The PMD team is pleased to announce PMD {{ site.pmd.version }}.
This is a {{ site.pmd.release_type }} release.
{% tocmaker is_release_notes_processor %}
🚀 New and noteworthy
🌟 New and changed rules
New Rules
- The new Apex rule {% rule apex/bestpractices/QueueableWithoutFinalizer %} detects when the Queueable interface 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.
🐛 Fixed Issues
- ant
- #1860: [ant] Reflective access warnings on java > 9 and java < 17
- apex
- html
- #5322: [html] CPD throws exception on when HTML file is missing closing tag
- java
- java-bestpractices
- java-codestyle
- #5263: [java] UnnecessaryFullyQualifiedName: false-positive in an enum that uses its own static variables
- java-performance
🚨 API Changes
Deprecations
- pmd-gherkin
- {%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.
- {%jdoc gherkin::lang.gherkin.ast.GherkinBaseVisitor %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement.
- {%jdoc gherkin::lang.gherkin.ast.GherkinListener %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement.
- {%jdoc gherkin::lang.gherkin.ast.GherkinParser %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement.
- {%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.
- pmd-julia
- {%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.
- {%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.
- {%jdoc julia::lang.julia.ast.JuliaListener %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement.
- {%jdoc julia::lang.julia.ast.JuliaParser %} is deprecated for removal. This class was never intended to be generated. It will be removed with no replacement.
- {%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.
- 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
- {%jdoc xml::lang.xml.antlr4.XMLLexer %} is deprecated for removal. Use {%jdoc !!xml::lang.xml.ast.XMLLexer %}
instead (note different package
ast
instead ofantlr4
).
- {%jdoc xml::lang.xml.antlr4.XMLLexer %} is deprecated for removal. Use {%jdoc !!xml::lang.xml.ast.XMLLexer %}
instead (note different package
✨ 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)
{% endtocmaker %}