net.sf.basedb.util
Class StaticCache.LockSafeInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
net.sf.basedb.util.StaticCache.LockSafeInputStream
- All Implemented Interfaces:
- Closeable
- Enclosing class:
- StaticCache
static class StaticCache.LockSafeInputStream
- extends FilterInputStream
A lock-safe input stream that releases the associated
read lock when the stream is closed.
NOTE! It is important that we keep a strong reference
to the 'key' in this class until the stream is closed,
since otherwise the locked entry may be reclaimed by the
garbage collector.
calledFrom
private final Throwable calledFrom
lock
private ReadWriteLock lock
key
private String key
closed
private boolean closed
StaticCache.LockSafeInputStream
StaticCache.LockSafeInputStream(InputStream in,
StaticCache.LockEntry lock)
close
public void close()
throws IOException
- Specified by:
close
in interface Closeable
- Overrides:
close
in class FilterInputStream
- Throws:
IOException
finalize
protected void finalize()
throws Throwable
- Overrides:
finalize
in class Object
- Throws:
Throwable
toString
public String toString()
- Overrides:
toString
in class Object