diff --git a/mayan/apps/ocr/tasks.py b/mayan/apps/ocr/tasks.py index bcb7b6ecca..9bb1a8efbd 100644 --- a/mayan/apps/ocr/tasks.py +++ b/mayan/apps/ocr/tasks.py @@ -27,6 +27,7 @@ def task_do_ocr(document_pk): # concurrently lock = Lock.acquire_lock(lock_id, LOCK_EXPIRE) logger.debug('acquired lock: %s' % lock_id) + document = None try: logger.info('Starting document OCR for document: %d' % document_pk) document = Document.objects.get(pk=document_pk) @@ -34,19 +35,20 @@ def task_do_ocr(document_pk): except Exception as exception: logger.error('OCR error for document: %d; %s' % (document_pk, exception)) document_queue = DocumentQueue.objects.get(name='default') - queue_document, created = document_queue.documents.get_or_create(document=document) - queue_document.node_name = platform.node() + if document: + queue_document, created = document_queue.documents.get_or_create(document=document) + queue_document.node_name = platform.node() - if settings.DEBUG: - result = [] - type, value, tb = sys.exc_info() - result.append('%s: %s' % (type.__name__, value)) - result.extend(traceback.format_tb(tb)) - queue_document.result = '\n'.join(result) - else: - queue_document.result = exception + if settings.DEBUG: + result = [] + type, value, tb = sys.exc_info() + result.append('%s: %s' % (type.__name__, value)) + result.extend(traceback.format_tb(tb)) + queue_document.result = '\n'.join(result) + else: + queue_document.result = exception - queue_document.save() + queue_document.save() else: logger.info('OCR for document: %d ended' % document_pk) document_queue = DocumentQueue.objects.get(name='default')