On Mon, 21 Jul 2025 16:51:51 GMT, Phil Race <p...@openjdk.org> wrote:
> Remove finalize from TIFF ImageIO implementatation classes. > > Following copied from the bug description > The TIFF image (de)compressors can make use of a JPEG reader / writer > Like all ImageIO readers and writers, once done, the owner should call their > dispose() method. > This is currently done with finalize() to ensure it isn't missed. > > This can be migrated to a Disposer. > > However, the most common case is that it is the ImageIO built-in > JPEGImageReader and JPEGImageWriter > that is located and that already implements a Disposer. So there is no need > to add a Disposer for that. > We only need to add it if we find some other reader/writer. > > With enough work, it might be possible for the TIFF compressor/decompressor > classes to work out when > they are really done and avoid a Disposer at all. But it could also be that > they instead need to discard > them when a specific task is done and then obtain a new one. > That would be much more overhead than just adding a Disposer for the rare > case and regardless > of what is done in the TIFF code, the built in JPEG classes will install > their own Disposer so I don't > think I want to pursue that route. > > I also noticed that TIFFBaseJPEGCompressor.java can replace the current > writer if it doesn't satisfy a need. > In that case it just nulls it out and doesn't call dispose() and of course > finalize() will then refer to the replacement. > So I added direct calls to dispose() in such a case. That was definitely > necessary with the finalize() code > but the Disposer would have taken care of it anyway, so it isn't strictly > needed with the new code but > it is still good to do it early if you can. This pull request has now been integrated. Changeset: dc4d9b48 Author: Phil Race <p...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/dc4d9b4849f6557f290338643910f0b05751d748 Stats: 44 lines in 3 files changed: 31 ins; 4 del; 9 mod 8362898: Remove finalize() methods from javax.imageio TIFF classes Reviewed-by: azvegint, jdv ------------- PR: https://git.openjdk.org/jdk/pull/26416