Utilities for debugging streams


Fix issues with close() method.

The specification of the Closeable interface (implemented both by byte and character streams) says about the close() method "... If the stream is already closed then invoking this method has no effect."

Unfortunately some stream implementations provided by third party library implementors do not follow the specification and exhibit odd behaviors if the close() method is invoked more than once. This library provides a set of stream wrappers to help you checking that the method close is invoked just once on the underlying stream.

If a wrapper is missing it is because Apache commons-io provides an equivalent class.