JEP 212: Resolve Lint and Doclint Warnings
|Author||Joseph D. Darcy|
|Status||Closed / Delivered|
|Discussion||jdk9 dash dev at openjdk dot java dot net|
|Reviewed by||Brian Goetz|
|Endorsed by||Brian Goetz|
The JDK code base contains numerous lint and doclint errors as reported
javac. These warnings should be resolved, at least for the fundamental
parts of the platform.
Operationally, the goal is to have at least the packages for the
fundamental packages in the platform (those discussed on core-libs,
awt-dev, swing-dev, 2d-dev, etc.) compile cleanly under
javac's lint and
doclint warnings. It is desirable for other packages, such as those
comprising JAXP, JAX-WS, and CORBA to also compile cleanly with all
A successful build of the sources in question when the
is used for the
javac command. A slightly weaker goal that may be
acceptable is for all the source-related lint options to be enabled, but
not the lint options for non-source properties. For example, some lint
options concern properties of the javac command line rather than the
sources being compiled.
This JEP proposes to complete efforts to fix warnings that have been
underway in JDK 8 and JDK 9 as well as to formalize a subset of
source-code improvements previously proposed to jdk9-dev. Most of
the warnings are resolved by modifying the interior of method
bodies. Resolving some of rawtypes warnings involves changing method
signatures, such as changing a parameter type from a raw
java.lang.Class to a
java.lang.Class<?> or some more specific
type. Any API changes will stay within the general evolution policy
of the JDK.
A successful compile / build is the primary test for most changes, but the existing regression tests should continue to pass. Where a Java SE API has a signature change, the corresponding JCK signature test will need to be updated accordingly.
Resolving the deprecation warnings in the JDK would be eased if importing a deprecated type does not trigger a deprecation warning.