# close current volume file (even if fileobj is external)
self.fileobj.close()
+ if isinstance(self.fileobj, _Stream):
+ # _Stream.close() never closes external fileobj
+ self._dbg(3, 'closing _Stream\'s external fileobj')
+ self.fileobj.fileobj.close()
try:
if not self.new_volume_handler or\
copyfileobj(source, target, tarinfo.size)
except OSError:
source.close()
+ if isinstance(source, _Stream) and source._extfileobj:
+ # _Stream.close() never closes external fileobj
+ self._dbg(3, 'closing _Stream\'s external fileobj')
+ source.fileobj.close()
+
# only if we are extracting a multivolume this can be treated
if not self.new_volume_handler:
raise Exception("We need to read a new volume and you"