2017-08-15 14:08:48 +02:00
---
title: PMD Release Notes
permalink: pmd_release_notes.html
keywords: changelog, release notes
---
2014-01-03 11:55:46 +01:00
2024-06-20 11:52:48 +02:00
## {{ site.pmd.date | date: "%d-%B-%Y" }} - {{ site.pmd.version }}
2016-04-23 18:30:13 +02:00
2024-03-22 09:35:44 +01:00
The PMD team is pleased to announce PMD {{ site.pmd.version }}.
2023-04-29 23:46:45 +02:00
2024-03-22 09:35:44 +01:00
This is a {{ site.pmd.release_type }} release.
2016-07-07 20:48:01 +02:00
2018-09-30 10:47:07 +02:00
{% tocmaker is_release_notes_processor %}
2017-04-29 20:22:28 +02:00
2024-08-30 10:52:17 +02:00
### 🚀 New and noteworthy
2024-08-29 12:48:14 +02:00
2024-11-17 15:30:59 +01:00
### 🌟 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.
2023-03-03 11:44:21 +01:00
### 🐛 Fixed Issues
2024-10-31 15:06:32 +01:00
* ant
* [#1860 ](https://github.com/pmd/pmd/issues/1860 ): \[ant] Reflective access warnings on java > 9 and java < 17
2024-11-14 18:17:49 +01:00
* apex
2024-11-17 15:30:59 +01:00
* [#5302 ](https://github.com/pmd/pmd/issues/5302 ): \[apex] New Rule: Queueable Should Attach Finalizer
2024-11-14 18:17:49 +01:00
* [#5333 ](https://github.com/pmd/pmd/issues/5333 ): \[apex] Token recognition errors for string containing unicode escape sequence
2024-11-14 14:38:45 -06:00
* html
2024-11-17 15:24:49 +01:00
* [#5322 ](https://github.com/pmd/pmd/issues/5322 ): \[html] CPD throws exception on when HTML file is missing closing tag
2024-11-04 11:21:25 +01:00
* java
* [#5293 ](https://github.com/pmd/pmd/issues/5293 ): \[java] Deadlock when executing PMD in multiple threads
2024-11-14 15:50:35 +01:00
* [#5324 ](https://github.com/pmd/pmd/issues/5324 ): \[java] Issue with type inference of nested lambdas
2024-11-14 19:18:11 +01:00
* [#5329 ](https://github.com/pmd/pmd/issues/5329 ): \[java] Type inference issue with unknown method ref in call chain
2024-11-15 16:14:53 -03:00
* java-bestpractices
* [#5083 ](https://github.com/pmd/pmd/issues/5083 ): \[java] UnusedPrivateMethod false positive when method reference has no target type
2024-11-15 18:39:39 -03:00
* [#5097 ](https://github.com/pmd/pmd/issues/5097 ): \[java] UnusedPrivateMethod FP with raw type missing from the classpath
2024-11-14 17:39:07 +01:00
* [#5318 ](https://github.com/pmd/pmd/issues/5318 ): \[java] PreserveStackTraceRule: false-positive on Pattern Matching with instanceof
2024-11-22 09:47:53 +01:00
* java-codestyle
* [#5263 ](https://github.com/pmd/pmd/issues/5263 ): \[java] UnnecessaryFullyQualifiedName: false-positive in an enum that uses its own static variables
2024-11-14 17:48:08 +01:00
* java-performance
2024-10-27 16:24:05 +01:00
* [#5287 ](https://github.com/pmd/pmd/issues/5287 ): \[java] TooFewBranchesForSwitch false-positive with switch using list of case constants
2024-11-14 17:48:08 +01:00
* [#5314 ](https://github.com/pmd/pmd/issues/5314 ): \[java] InsufficientStringBufferDeclarationRule: Lack of handling for char type parameters
2024-06-28 10:42:31 +02:00
2024-03-22 09:35:44 +01:00
### 🚨 API Changes
2024-09-27 10:49:57 +02:00
2024-10-31 12:22:59 +01:00
#### Deprecations
2024-11-17 16:12:46 +01:00
* 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.
2024-11-17 16:15:55 +01:00
* 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.
2024-11-17 15:58:05 +01:00
* 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.
2024-10-31 12:22:59 +01:00
* 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 of `antlr4` ).
2024-10-25 09:28:54 +02:00
### ✨ External Contributions
2024-11-14 18:17:49 +01:00
* [#5284 ](https://github.com/pmd/pmd/pull/5284 ): \[apex] Use case-insensitive input stream to avoid choking on Unicode escape sequences - [Willem A. Hajenius ](https://github.com/wahajenius ) (@wahajenius)
2024-11-17 15:30:59 +01:00
* [#5303 ](https://github.com/pmd/pmd/pull/5303 ): \[apex] New Rule: Queueable Should Attach Finalizer - [Mitch Spano ](https://github.com/mitchspano ) (@mitchspano)
2024-09-27 11:43:22 +02:00
2024-10-25 08:47:38 +02:00
{% endtocmaker %}
2024-10-25 09:28:54 +02:00