While trying to find some resources on the web describing what my poor english is talking about, I came along many of them but the best one was given through that already dissappered real vendor itself:
Similarly, when closing chained streams, you only need to close the outermost stream class because the close() call is automatically trickled through all the chained classes; in the example above, you would simply call the close() method on the GZIPOutputStream class.
When you look at the example there the inner most OutputStream is also a FileOutputStream, however there's no need of an explicit close call on that:
There are plenty of other APIs having similar semantics (call-chaining) like when you close a JDBC Statement:
Note:When a Statement object is closed, its current ResultSet object, if one exists, is also closed.
So why I still ask for your approval to get rid of those two obsolete static member classes.