28-March-2025 - 7.12.0
The PMD team is pleased to announce PMD 7.12.0.
This is a minor release.
Table Of Contents
🚀 New and noteworthy
✨ New Rules
- The new Java rule
ImplicitFunctionalInterface
reports functional interfaces that were
not explicitly declared as such with the annotation @FunctionalInterface
. If an interface is accidentally a functional
interface, then it should bear a @SuppressWarnings("PMD.ImplicitFunctionalInterface")
annotation to make this clear.
🐛 Fixed Issues
- core
- #5593: [core] Make renderers output files in deterministic order even when multithreaded
- apex
- #5567: [apex] Provide type information for CastExpression
- apex-design
- #5616: [apex] ExcessiveParameterList reports entire method instead of signature only
- java
- #5587: [java] Thread deadlock during PMD analysis in ParseLock.getFinalStatus
- java-bestpractices
- #2849: [java] New Rule: ImplicitFunctionalInterface
- #5369: [java] UnusedPrivateMethod false positives with lombok.val
- #5590: [java] LiteralsFirstInComparisonsRule not applied on constant
- #5592: [java] UnusedAssignment false positive in record compact constructor
- java-codestyle
- #5079: [java] LocalVariableCouldBeFinal false-positive with lombok.val
- #5452: [java] PackageCase: Suppression comment has no effect due to finding at wrong position in case of JavaDoc comment
- plsql
- #4441: [plsql] Parsing exception with XMLQUERY function in SELECT
- #5521: [plsql] Long parse time and eventually parse error with XMLAGG order by clause
🚨 API Changes
Deprecations
✨ Merged pull requests
📦 Dependency updates
- #5558: Bump PMD from 7.10.0 to 7.11.0
- #5561: Bump org.apache.groovy:groovy from 4.0.25 to 4.0.26
- #5562: Bump org.junit.platform:junit-platform-suite from 1.11.4 to 1.12.0
- #5564: Bump org.apache.maven.plugins:maven-clean-plugin from 3.4.0 to 3.4.1
- #5565: Bump org.apache.maven.plugins:maven-deploy-plugin from 3.1.3 to 3.1.4
- #5566: Bump io.github.apex-dev-tools:apex-ls_2.13 from 5.7.0 to 5.8.0
- #5571: Bump nokogiri from 1.16.7 to 1.18.3
- #5572: Bump uri from 0.13.1 to 1.0.3
- #5575: Bump org.jsoup:jsoup from 1.18.3 to 1.19.1
- #5576: Bump scalameta.version from 4.13.2 to 4.13.3
- #5577: Bump org.yaml:snakeyaml from 2.3 to 2.4
- #5578: Bump com.google.protobuf:protobuf-java from 4.29.3 to 4.30.0
- #5580: Bump net.bytebuddy:byte-buddy from 1.17.1 to 1.17.2
- #5581: Bump com.puppycrawl.tools:checkstyle from 10.21.3 to 10.21.4
- #5582: Bump the gems liquid to 5.8.1 and logger to 1.6.6
- #5602: Bump org.apache.maven.plugins:maven-install-plugin from 3.1.3 to 3.1.4
- #5603: Bump net.bytebuddy:byte-buddy-agent from 1.17.1 to 1.17.2
- #5604: Bump org.mockito:mockito-core from 5.15.2 to 5.16.1
- #5605: Bump org.junit.platform:junit-platform-suite from 1.12.0 to 1.12.1
- #5606: Bump org.checkerframework:checker-qual from 3.49.0 to 3.49.1
- #5608: Bump com.google.protobuf:protobuf-java from 4.30.0 to 4.30.1
- #5619: Bump nokogiri from 1.18.3 to 1.18.5
- #5624: Bump scalameta.version from 4.13.3 to 4.13.4
- #5627: Bump net.bytebuddy:byte-buddy-agent from 1.17.2 to 1.17.4
- #5628: Bump io.github.apex-dev-tools:apex-ls_2.13 from 5.8.0 to 5.9.0
- #5629: Bump com.google.guava:guava from 33.4.0-jre to 33.4.5-jre
- #5630: Bump net.bytebuddy:byte-buddy from 1.17.2 to 1.17.4
📈 Stats
- 114 commits
- 28 closed tickets & PRs
- Days since last release: 27