You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2010/06/08 18:42:35 UTC

svn commit: r952731 - /qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py

Author: kgiusti
Date: Tue Jun  8 16:42:35 2010
New Revision: 952731

URL: http://svn.apache.org/viewvc?rev=952731&view=rev
Log:
QMF: ignore errors when servicing messages over a closed session.

Modified:
    qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py

Modified: qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py?rev=952731&r1=952730&r2=952731&view=diff
==============================================================================
--- qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py (original)
+++ qpid/trunk/qpid/extras/qmf/src/py/qmf/console.py Tue Jun  8 16:42:35 2010
@@ -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



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org