Remove javax.imageio.spi.ServiceRegistry.finalize() since it is deprecated for removal. The impact of this should be minimal. The IIORegistry will now be a singleton - which it already was in practice since Applets are no longer supported. Since it is a singleton, it will persist for the life of the VM, so will never be garbage collected. A test that verifies one per-AppContext is now obsolete, and is deleted, and there's no good reason to make it a negative test, since in due course AppContext itself will be deleted and is un-used today except in tests.
Since JDK 9, ServiceRegistry has supported only Image I/O specified providers, and since the IIORegistry does this, in practice there is very little reason for an application to create instances or subclasses of it. And even if they do, typically like IIORegistry, they be used for the life time of the application. And if they are collected, without calling ServiceRegistry.deregisterAll() there may be no impact, since only providers that implement RegisterableService will be affected. See the JBS issue for all the details. ------------- Commit messages: - 8365292 - 8365292 Changes: https://git.openjdk.org/jdk/pull/26752/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26752&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8365292 Stats: 195 lines in 3 files changed: 11 ins; 180 del; 4 mod Patch: https://git.openjdk.org/jdk/pull/26752.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/26752/head:pull/26752 PR: https://git.openjdk.org/jdk/pull/26752