public interface Releasable
For example, the creation of a ResettableInputStream
would entail
physically opening a file. If the opened file is meant to be closed only (in
a finally block) by the very same code block that created it, then it is
necessary that the release method must not be called while the execution is
made in other stack frames.
In such case, as other stack frames may inadvertently or indirectly call the
close method of the stream, the creator of the stream would need to
explicitly disable the accidental closing via
ResettableInputStream#disableClose()
, so that the release method
becomes the only way to truly close the opened file.
void release()
Closeable
resource to be not
unintentionally released owing to the calling of the
Closeable.close()
methods by implementation deep down in the call
stack.
For example, the creation of a ResettableInputStream
would entail
physically opening a file. If the opened file is meant to be closed only
(in a finally block) by the very same code block that created it, then it
is necessary that the release method must not be called while the
execution is made in other stack frames.
In such case, as other stack frames may inadvertently or indirectly call
the close method of the stream, the creator of the stream would need to
explicitly disable the accidental closing via
ResettableInputStream#disableClose()
, so that the release method
becomes the only way to truly close the opened file.