Yes, this is not a stream leak. And I do not know either why it is needed to "remove" timestamps of directories inside WEB-INF/lib/classes.jar "to make sure classes.jar always get a consistent checksum".
Note that before this change, ZipOutputStream.close() and java.util.zip.Deflater.end() were not called, in order to release native memory.