We have a rather large and complex application written in Java which is running on top of the Gridgain package. The problem I am having is that this application will sit there p
There is little point in overriding finalize()
. If the handle is getting garbage collected and finalized, then so is the instance of java.io.BufferedReader
and it will get closed.
It is possible (according to the spec) that the handle is being garbage collected but not finalized, but this is not very likely.
You could try using PhantomReference
s to clean up unused file handles, but my guess is that your instances of BufferedReaderImpl
are still referenced from somewhere (e.g. values in a Map
from filenames to open handles) and that is what is preventing them from being closed (in which case finalizers will not help.)