diff options
| author | Ken Giusti <kgiusti@apache.org> | 2010-06-08 16:42:35 +0000 |
|---|---|---|
| committer | Ken Giusti <kgiusti@apache.org> | 2010-06-08 16:42:35 +0000 |
| commit | bd6f4c40415d619a96e4820b3ae886a572468c15 (patch) | |
| tree | aa3ef63e018b1bdb0df7a7282d8ba61d82d09fa9 | |
| parent | b73b73dff29cab67a9060453f653598bc3abd085 (diff) | |
| download | qpid-python-bd6f4c40415d619a96e4820b3ae886a572468c15.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
| -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 |
