27 February 2026
The PMD team is pleased to announce PMD 7.22.0.
This is a minor release.
--format vbhtml or --format yahtml on untrusted source code
(e.g. pull requests from external contributors) and expose the HTML report as a build artifact.
JavaScript executes in the browser context of anyone who opens the report.html format is not affected by unescaped violation messages, but a similar problem
existed with suppressed violation markers.UnnecessaryInterfaceDeclaration detects classes that
implement interfaces that are already implemented by its superclass, and interfaces
that extend other interfaces already declared by their superinterfaces.CloseResource introduces a new property, allowedResourceMethodPatterns,
which lets you specify method invocation patterns whose return values are resources managed externally.
This is useful for ignoring managed resources - for example, Reader/Writer instances obtained from
HttpServletRequest/HttpServletResponse - because the servlet container, not application code,
is responsible for closing them. By default, the rule ignores InputStream/OutputStream/Reader/Writer
resources returned by methods on (Http)ServletRequest and (Http)ServletResponse
(both javax.servlet and jakarta.servlet).CodeClimateIssue: This class is an implementation detail of
CodeClimateRenderer. It will be internalized in a future release.DataType. The enum constants have been renamed to follow Java naming
conventions. The old enum constants are deprecated and should no longer be used.DataType#fromString will return the new
enum constants.DataType#fieldTypeNameOf to get the original field type name.