26-February-2022 - 6.43.0-SNAPSHOT
The PMD team is pleased to announce PMD 6.43.0-SNAPSHOT.
This is a minor release.
New and noteworthy
Fixed Issues
- core
- #3427: [core] Stop printing CLI usage text when exiting due to invalid parameters
- java
- #3698: [java] Parsing error with try-with-resources and qualified resource
- java-codestyle
- #278: [java] ConfusingTernary should treat
!= nullas positive condition
- #278: [java] ConfusingTernary should treat
- java-performance
- #3374: [java] UseStringBufferForStringAppends: Wrong example in documentation
- misc
- #3759: [lang-test] Upgrade dokka maven plugin to 1.4.32
- plsql
- #3746: [plsql] Parsing exception “Less than or equal to/Greater than or equal to” operators in DML statements
API Changes
Deprecated API
Some API deprecations were performed in core PMD classes, to improve compatibility with PMD 7.
Report: the constructor and other construction methods like addViolation or createReportRuleContext: all constructors, getters and setters. A new set of stable methods, matching those in PMD 7, was added to replace theaddViolationoverloads ofAbstractRule. In PMD 7,RuleContextwill be the API to report violations, and it can already be used as such in PMD 6.- The field
configurationis unused and will be removed.
Internal API
Those APIs are not intended to be used by clients, and will be hidden or removed with PMD 7.0.0.
You can identify them with the @InternalApi annotation. You’ll also get a deprecation warning.
RuleSet: methods that serve to apply rules, includingapply,start,end,removeDysfunctionalRulesAbstractAccumulatingRenderer#renderFileReportis internal API and should not be overridden in own renderers.
Changed API
It is now forbidden to report a violation:
- With a
nullnode - With a
nullmessage - With a
nullset of format arguments (prefer a zero-length array)
Note that the message is set from the XML rule declaration, so this is only relevant if you instantiate rules manually.
RuleContext now requires setting the current rule before calling
apply. This is
done automatically by RuleSet#apply and such. Creating and configuring a
RuleContext manually is strongly advised against, as the lifecycle of RuleContext
will change drastically in PMD 7.
External Contributions
- #3767: [core] Update GUI.java - Vyom Yadav