Raised in JRADEV-17962:
For example, StreamingImageRenderer.scaleDown creates an ImageReader and does not call dispose() on it before it goes out of scope.
Some ImageReader implementations, notably JPEG and TIFF, use native resources when reading images, which are freed by dispose(). Failure to call it then leaks those resources; those reader implementations do not implement finalize() as a last-ditch effort.
I've looked at the tip of master and this appears to be an issue in the current code.