Migrate from deprecated finalization API to Java 9+ API #8486
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Recent versions of Java have deprecated
Object#finalize
and marked it for removal:In this PR we proactively migrate away from this deprecated API in favor of its Java 9+ replacement.
As a bonus, we also implement the advice given by Joshua Bloch in Effective Java (emphasis not mine):
We also add test coverage for this functionality. The new test passes before the changes to
src/main
, demonstrating there is no regression.Testing done
Ran
AtomicFileWriterTest
on Java 17 on both Linux and Windows.Proposed changelog entries
N/A
Proposed upgrade guidelines
N/A
Submitter checklist
Desired reviewers
@mention
Before the changes are marked as
ready-for-merge
:Maintainer checklist