Update ensure()/reconnect() to catch MessagingError

The error handling code that gets connections reset if necessary
caught ConnectionError.  It really needs to catch MessagingError,
which ConnectionError inherits from.  There are other types of
MessagingErrors that may occur, such as InternalError, and they need
to cause the connection to reset, as well.

Closes-bug: #1303890
Change-Id: Ic5082b74a362ded8b35cbc75cf178fe6e0db62d0
(cherry picked from commit bb6f3f11f3)
This commit is contained in:
Russell Bryant 2014-04-07 11:59:24 -04:00 committed by Matt Riedemann
parent 7d33217f2b
commit f61a889786
1 changed files with 3 additions and 3 deletions

View File

@ -509,7 +509,7 @@ class Connection(object):
if self.connection is not None and self.connection.opened():
try:
self.connection.close()
except qpid_exceptions.ConnectionError:
except qpid_exceptions.MessagingError:
pass
broker = six.next(self.brokers)
@ -517,7 +517,7 @@ class Connection(object):
try:
self.connection_create(broker)
self.connection.open()
except qpid_exceptions.ConnectionError as e:
except qpid_exceptions.MessagingError as e:
msg_dict = dict(e=e, delay=delay)
msg = _("Unable to connect to AMQP server: %(e)s. "
"Sleeping %(delay)s seconds") % msg_dict
@ -545,7 +545,7 @@ class Connection(object):
try:
return method(*args, **kwargs)
except (qpid_exceptions.Empty,
qpid_exceptions.ConnectionError) as e:
qpid_exceptions.MessagingError) as e:
if error_callback:
error_callback(e)
self.reconnect()