[Zodb-checkins] CVS: Packages/ZEO/zrpc - connection.py:1.49.4.6

Tim Peters tim.one at comcast.net
Tue Oct 4 12:20:18 EDT 2005


Update of /cvs-repository/Packages/ZEO/zrpc
In directory cvs.zope.org:/tmp/cvs-serv17721/ZEO/zrpc

Modified Files:
      Tag: Zope-2_7-branch
	connection.py 
Log Message:
Collector 1900.

send_reply(), return_error():  Stop trying to catch an exception that doesn't
exist, when marshal.encode() raises an exception.  Jeremy simplified the
marshal.encode() half of this about 3 years ago, but apparently forgot to
change ZEO/zrpc/connection.py to match.


=== Packages/ZEO/zrpc/connection.py 1.49.4.5 => 1.49.4.6 ===
--- Packages/ZEO/zrpc/connection.py:1.49.4.5	Wed Feb  9 11:03:41 2005
+++ Packages/ZEO/zrpc/connection.py	Tue Oct  4 12:20:17 2005
@@ -414,9 +414,13 @@
         return hasattr(self.obj, name)
 
     def send_reply(self, msgid, ret):
+        # encode() can pass on a wide variety of exceptions from cPickle.
+        # While a bare `except` is generally poor practice, in this case
+        # it's acceptable -- we really do want to catch every exception
+        # cPickle may raise.
         try:
             msg = self.marshal.encode(msgid, 0, REPLY, ret)
-        except self.marshal.errors:
+        except: # see above
             try:
                 r = short_repr(ret)
             except:
@@ -433,9 +437,13 @@
         if type(err_value) is not types.InstanceType:
             err_value = err_type, err_value
 
+        # encode() can pass on a wide variety of exceptions from cPickle.
+        # While a bare `except` is generally poor practice, in this case
+        # it's acceptable -- we really do want to catch every exception
+        # cPickle may raise.
         try:
             msg = self.marshal.encode(msgid, 0, REPLY, (err_type, err_value))
-        except self.marshal.errors:
+        except: # see above
             try:
                 r = short_repr(err_value)
             except:



More information about the Zodb-checkins mailing list