Current implementation of java.io.SequenceInputStream.close may fail to adhere to its contract in case when one of the remaining input streams throws IOException on close; the input streams remaining in the enumeration will be left open. In addition, the 'in' field representing the current InputStream will be left non-null if an exception is thrown from a stream's close() method. This will make the SequenceInputStream still appear to be open, causing misbehavior of methods such as available(), read(), and others.