com.sun.enterprise.loader
Class ASURLClassLoader.SentinelInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
com.sun.enterprise.loader.ASURLClassLoader.SentinelInputStream
- All Implemented Interfaces:
- Closeable
- Enclosing class:
- ASURLClassLoader
protected final class ASURLClassLoader.SentinelInputStream
- extends FilterInputStream
Wraps all InputStreams returned by this class loader to report when
a finalizer is run before the stream has been closed. This helps
to identify where locked files could arise.
- Author:
- vtsyganok, tjquinn
|
Method Summary |
void |
close()
Closes underlying input stream. |
protected void |
finalize()
Invoked by Garbage Collector. |
ASURLClassLoader.SentinelInputStream
protected ASURLClassLoader.SentinelInputStream(InputStream in)
- Constructs new FilteredInputStream which reports InputStreams not closed properly.
When the garbage collector runs the finalizer. If the stream is still open this class will
report a stack trace showing where the stream was opened.
- Parameters:
in - - InputStream to be wrapped
close
public void close()
throws IOException
- Closes underlying input stream.
- Specified by:
close in interface Closeable- Overrides:
close in class FilterInputStream
- Throws:
IOException
finalize
protected void finalize()
throws Throwable
- Invoked by Garbage Collector. If underlying InputStream was not closed properly,
the stack trace of the constructor will be logged!
'closed' is 'volatile', but it's a race condition to check it and how this code
relates to _close() is unclear.
- Overrides:
finalize in class Object
- Throws:
Throwable
Copyright © 2012 GlassFish Community. All Rights Reserved.