summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xqpid/tools/src/py/qpid-config17
1 files changed, 14 insertions, 3 deletions
diff --git a/qpid/tools/src/py/qpid-config b/qpid/tools/src/py/qpid-config
index 8d59dea21e..ecb880be21 100755
--- a/qpid/tools/src/py/qpid-config
+++ b/qpid/tools/src/py/qpid-config
@@ -377,9 +377,20 @@ class BrokerManager:
self.conn = Connection.establish(self.url, **conn_options)
self.broker = BrokerAgent(self.conn)
- def Disconnect(self):
+ def Disconnect(self, ignore=True):
if self.conn:
- self.conn.close()
+ try:
+ self.conn.close()
+ except Exception, e:
+ if ignore:
+ # suppress close errors to avoid
+ # tracebacks when a previous
+ # exception will be printed to stdout
+ pass
+ else:
+ # raise last exception so complete
+ # trackback is preserved
+ raise
def Overview(self):
exchanges = self.broker.getAllExchanges()
@@ -770,7 +781,7 @@ def main(argv=None):
# some commands take longer than the default amqp timeout to complete,
# so attempt to disconnect until successful, ignoring Timeouts
try:
- bm.Disconnect()
+ bm.Disconnect(ignore=False)
break
except Exception, e:
if e.__class__.__name__ != "Timeout":