RFR: 8371748: Remove the (empty) ThreadPoolExecutor.finalize() method

Brent Christian bchristi at openjdk.org
Thu Nov 13 23:19:52 UTC 2025


>From the bug report:
Prior to JDK 11, ThreadPoolExecutor.finalize() was specified to
"[invoke] shutdown() when this executor is no longer referenced and it has no threads."

In JDK 11, ThreadPoolExecutor.finalize() was re-specified to do nothing, leaving the finalize() method empty. ([JDK-8190324](https://bugs.openjdk.org/browse/JDK-8190324)).

In JDK 18, finalize() was deprecated for removal ([JDK-8276447](https://bugs.openjdk.org/browse/JDK-8276447)), after first being "standard" deprecated in JDK 9 ([JDK-8165641](https://bugs.openjdk.org/browse/JDK-8165641)).

The finalize() method can safely be removed from ThreadPoolExecutor.

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

Commit messages:
 - Remove ThreadPoolExecutor.finalize()

Changes: https://git.openjdk.org/jdk/pull/28311/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28311&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8371748
  Stats: 17 lines in 1 file changed: 0 ins; 17 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/28311.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28311/head:pull/28311

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


More information about the core-libs-dev mailing list