diff options
| author | Kenneth Anthony Giusti <kgiusti@apache.org> | 2010-06-08 16:42:35 +0000 |
|---|---|---|
| committer | Kenneth Anthony Giusti <kgiusti@apache.org> | 2010-06-08 16:42:35 +0000 |
| commit | 7bc7343d693ac6538635ed4e55ada5722b2070a1 (patch) | |
| tree | aa3ef63e018b1bdb0df7a7282d8ba61d82d09fa9 /extras | |
| parent | bdc299df1de6ca9dcd093040f00ff965692efeb0 (diff) | |
| download | qpid-python-7bc7343d693ac6538635ed4e55ada5722b2070a1.tar.gz | |
QMF: ignore errors when servicing messages over a closed session.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@952731 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'extras')
| -rw-r--r-- | extras/qmf/src/py/qmf/console.py | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/extras/qmf/src/py/qmf/console.py b/extras/qmf/src/py/qmf/console.py index d6b0ef0931..6cfcdc9e31 100644 --- a/extras/qmf/src/py/qmf/console.py +++ b/extras/qmf/src/py/qmf/console.py @@ -2390,8 +2390,12 @@ class Broker: elif agent: agent._handleQmfV1Message(opcode, seq, mp, ah, codec) - self.amqpSession.receiver._completed.add(msg.id) - self.amqpSession.channel.session_completed(self.amqpSession.receiver._completed) + # ignore failures as the session may be shutting down... + try: + self.amqpSession.receiver._completed.add(msg.id) + self.amqpSession.channel.session_completed(self.amqpSession.receiver._completed) + except: + pass def _v2Cb(self, msg): """ @@ -2404,13 +2408,21 @@ class Broker: if 'qmf.opcode' in ah: opcode = ah['qmf.opcode'] if mp.content_type == "amqp/list": - content = codec.read_list() - if not content: - content = [] + try: + content = codec.read_list() + if not content: + content = [] + except: + # malformed list - ignore + content = None elif mp.content_type == "amqp/map": - content = codec.read_map() - if not content: - content = {} + try: + content = codec.read_map() + if not content: + content = {} + except: + # malformed map - ignore + content = None else: content = None @@ -2433,8 +2445,12 @@ class Broker: agent = self.agents[agent_addr] agent._handleQmfV2Message(opcode, mp, ah, content) - self.amqpSession.receiver._completed.add(msg.id) - self.amqpSession.channel.session_completed(self.amqpSession.receiver._completed) + # ignore failures as the session may be shutting down... + try: + self.amqpSession.receiver._completed.add(msg.id) + self.amqpSession.channel.session_completed(self.amqpSession.receiver._completed) + except: + pass def _exceptionCb(self, data): self.connected = False |
