[FIX] hw_escpos: Avoid crashes on error

Two different problems on the box and resulted in the crash of the Odoo
instance running on the IoT Box:

When `usblp` had troubles communicating with a printer, a NoDeviceError
was raised. The `printer` variable was still set from the last time the
loop was processed, so we tried to close it, resulting in an error.

The code handling generic execptions was broken.

closes odoo/odoo#34300

Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
This commit is contained in:
Antoine Prieels
2019-06-21 12:07:01 +00:00
parent 92ae9687e8
commit c80b5333b6
+3 -2
View File
@@ -183,13 +183,14 @@ class EscposDriver(Thread):
except NoStatusError as e:
print("Impossible to get the status of the printer %s" % e)
except Exception as e:
self.set_status('error', e)
_logger.exception()
self.set_status('error')
_logger.exception(e)
finally:
if error:
self.queue.put((timestamp, task, data))
if printer:
printer.close()
printer = None
def push_task(self,task, data = None):
self.lockedstart()