From 95f5560b46b24a42468dda2f2ebcc3eba271c28d Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Thu, 23 Sep 2010 18:36:46 +0000 Subject: Try to fix test_tarfile issues on Windows buildbots by closing file objects explicitly instead of letting them linger on. --- Lib/tarfile.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'Lib/tarfile.py') diff --git a/Lib/tarfile.py b/Lib/tarfile.py index bf6129e39f..bfdba58efe 100644 --- a/Lib/tarfile.py +++ b/Lib/tarfile.py @@ -1764,14 +1764,19 @@ class TarFile(object): if fileobj is None: fileobj = bltn_open(name, mode + "b") + extfileobj = False + else: + extfileobj = True try: t = cls.taropen(name, mode, gzip.GzipFile(name, mode, compresslevel, fileobj), **kwargs) except IOError: + if not extfileobj: + fileobj.close() raise ReadError("not a gzip file") - t._extfileobj = False + t._extfileobj = extfileobj return t @classmethod @@ -1795,6 +1800,7 @@ class TarFile(object): try: t = cls.taropen(name, mode, fileobj, **kwargs) except (IOError, EOFError): + fileobj.close() raise ReadError("not a bzip2 file") t._extfileobj = False return t -- cgit v1.2.1