Package 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,AutoCloseable
- Enclosing class:
- ASURLClassLoader
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
-
Field Summary
Fields inherited from class java.io.FilterInputStream
in -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedConstructs new FilteredInputStream which reports InputStreams not closed properly. -
Method Summary
Methods inherited from class java.io.FilterInputStream
available, mark, markSupported, read, read, read, reset, skipMethods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo
-
Constructor Details
-
SentinelInputStream
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
-
-
Method Details
-
close
Closes underlying input stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classFilterInputStream- Throws:
IOException
-
finalize
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.
-