From 06c88c8a2edad6562ad43e63ec894b1ba59c3818 Mon Sep 17 00:00:00 2001 From: Jens Andersen Date: Thu, 17 Oct 2013 13:59:39 +0000 Subject: Ensure errors in json parsing doesn't leave everything in a broken state --- pygerrit/stream.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'pygerrit') diff --git a/pygerrit/stream.py b/pygerrit/stream.py index 2184ae9..1834d66 100644 --- a/pygerrit/stream.py +++ b/pygerrit/stream.py @@ -57,13 +57,17 @@ class GerritStream(Thread): stdout = channel.makefile() stderr = channel.makefile_stderr() while not self._stop.is_set(): - if channel.exit_status_ready(): - if channel.recv_stderr_ready(): - error = stderr.readline().strip() + try: + if channel.exit_status_ready(): + if channel.recv_stderr_ready(): + error = stderr.readline().strip() + else: + error = "Remote server connection closed" + self._error_event(error) + self._stop.set() else: - error = "Remote server connection closed" - self._error_event(error) + data = stdout.readline() + self._gerrit.put_event(data) + except Exception as e: + self._error_event(repr(e)) self._stop.set() - else: - data = stdout.readline() - self._gerrit.put_event(data) -- cgit v1.2.1