RFR: 8376477: Avoid loading empty Lock classes in Shutdown and ReferenceQueue [v2]

Eirik Bjørsnøs eirbjo at openjdk.org
Thu Feb 26 12:56:17 UTC 2026


> Please review this PR which removes empty nested `Lock` classes in `java.lang.Shutdown` and `java.lang.ref.ReferenceQueue`. 
> 
> These are replaced with the more common "new Object()" idiom, which saves us loading these two nested classes.
> 
> Additionally, this PR marks the lock objects in `Shutdown` as `final`
> 
> This was initially discussed in https://mail.openjdk.org/pipermail/core-libs-dev/2026-January/157704.html.
> 
> Except the observability of the lock name class, this should be a strict refactoring. No tests updated, `noreg-cleanup`.

Eirik Bjørsnøs 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 two additional commits since the last revision:

 - Merge branch 'master' into remove-custom-lock-objects
 - Avoid loading custom empty Lock classes

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/29442/files
  - new: https://git.openjdk.org/jdk/pull/29442/files/4f17d3fa..efe287eb

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=29442&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=29442&range=00-01

  Stats: 579055 lines in 2288 files changed: 292519 ins; 262833 del; 23703 mod
  Patch: https://git.openjdk.org/jdk/pull/29442.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29442/head:pull/29442

PR: https://git.openjdk.org/jdk/pull/29442


More information about the core-libs-dev mailing list