-
Task
-
Resolution: Done
-
Undefined
-
None
-
None
-
None
-
False
-
None
-
False
-
-
-
AMM Sprint 239, AMM Sprint 240
-
No
Finalization has been deprecated for removal in a future release by JDK18. It continues to work now but users should start their migration off finalizers.
Users can test what happens with finalization disable by running with: `-finalization=disabled`
JEP 421: https://openjdk.org/jeps/421
When
a Java class references a "void finalize()" method, such as java.lang.Object.finalize, OR
a Java class references a method to invoke finalization such as java.lang.Runtime.runFinalization or java.lang.System.runFinalization
a Java class references any of these methods or their own finalize methods:
java.awt.Graphics.finalize
java.awt.PrintJob.finalize
java.lang.Enum.finalize
java.lang.Object.finalize
java.lang.Runtime.runFinalization
java.lang.System.runFinalization
java.util.concurrent.ThreadPoolExecutor.finalize
javax.imageio.spi.ServiceRegistry.finalize
javax.imageio.stream.FileCacheImageInputStream.finalize
javax.imageio.stream.FileImageInputStream.finalize
javax.imageio.stream.FileImageOutputStream.finalize
javax.imageio.stream.ImageInputStreamImpl.finalize
javax.imageio.stream.MemoryCacheImageInputStream.finalize
Perform
Add a hint to remove use of finalization and use Cleaner or PhantomReference instead.