RFR: 8327255: javac lint warnings: removal, missing-explicit-ctor [v2]

Lukasz Kostyra lkostyra at openjdk.org
Tue Jun 25 08:48:20 UTC 2024


On Sat, 22 Jun 2024 13:37:30 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:

>> This PR updates `build.gradle` to define javac lint options for three different types of java compilation tasks: sdk classes, test classes (including shims), and tool classes (including JSLC). The defaults for these three groups of lint options are specified in `build.gradle`.
>> 
>> We also define three gradle properties that can be used at build time to override the global lint options for each of the three categories of tasks as follows:
>> 
>> * `LINT` - used when compiling sdk tasks : default = "removal,missing-explicit-ctor"
>> * `TOOL_LINT` - used when compiling tool tasks : default = ""
>> * `TEST_LINT` - used when compiling test tasks : default = ""
>> 
>> Each property takes a string with a comma-separated list of lint options. For example:
>> 
>> 
>> gradle -PLINT="deprecation,removal" sdk
>> 
>> 
>> I provided a build mechanism to add extra per-module lint options in `build.gradle`. None are currently defined, but I tested the logic to show that it can be. I did not provide a way to override the per-module lint options via the command line. Once we start using them, we might consider adding that.
>> 
>> While testing this PR, I ran into a few places where we need to suppress removal warnings for use of our own internal classes that are terminally deprecated, so I filed [JDK-8334143](https://bugs.openjdk.org/browse/JDK-8334143) to track this, and added the missing annotations in this PR.
>> 
>> I also tested with JDK 23 to verify that we are now getting the expected warnings for the use of sun.misc.Unsafe, and filed two bugs --[JDK-8334138](https://bugs.openjdk.org/browse/JDK-8334138) to (temporarily) suppress those warnings in this PR and [JDK-8334137](https://bugs.openjdk.org/browse/JDK-8334137) to eventually fix them by replacing our use of sun.misc.Unsafe.
>
> Kevin Rushforth has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
> 
>  - Merge remote-tracking branch 'upstream/master' into 8327255-lint-removal,missing-explicit-ctor
>  - fix typo and add missing tool tasks
>  - 8334138: Suppress removal warnings for sun.misc.Unsafe memory access methods
>  - 8334143: Suppress remaining removal warnings for internal methods and classes
>  - 8327255: javac lint warnings: removal, missing-explicit-ctor

LGTM

-------------

Marked as reviewed by lkostyra (Committer).

PR Review: https://git.openjdk.org/jfx/pull/1474#pullrequestreview-2137916398


More information about the openjfx-dev mailing list