Add parameter to fs_cleanup function to close a file descriptor before closing it. GitLab issue #309.

This commit is contained in:
Roberto Rosario
2016-06-27 19:21:42 -04:00
parent 5ac1276f25
commit d0aee4f72b
2 changed files with 6 additions and 3 deletions

View File

@@ -45,10 +45,13 @@ def encapsulate(function):
return lambda: function return lambda: function
def fs_cleanup(filename, suppress_exceptions=True): def fs_cleanup(filename, file_descriptor=None, suppress_exceptions=True):
""" """
Tries to remove the given filename. Ignores non-existent files Tries to remove the given filename. Ignores non-existent files
""" """
if file_descriptor:
os.close(file_descriptor)
try: try:
os.remove(filename) os.remove(filename)
except OSError: except OSError:

View File

@@ -155,12 +155,12 @@ class PopplerParser(Parser):
return_code = proc.wait() return_code = proc.wait()
if return_code != 0: if return_code != 0:
logger.error(proc.stderr.readline()) logger.error(proc.stderr.readline())
fs_cleanup(temp_filepath) fs_cleanup(temp_filepath, file_descriptor=destination_descriptor)
raise ParserError raise ParserError
output = proc.stdout.read() output = proc.stdout.read()
fs_cleanup(temp_filepath) fs_cleanup(temp_filepath, file_descriptor=destination_descriptor)
if output == b'\x0c': if output == b'\x0c':
logger.debug('Parser didn\'t return any output') logger.debug('Parser didn\'t return any output')