[z3-checkins] r41274 - z3/sqlos/trunk/src/sqlos

kobold at codespeak.net kobold at codespeak.net
Sun Mar 25 13:46:40 CEST 2007


Author: kobold
Date: Sun Mar 25 13:46:40 2007
New Revision: 41274

Modified:
   z3/sqlos/trunk/src/sqlos/adapter.py
Log:
Filter Retry exceptions: this is required for serialized database connections.


Modified: z3/sqlos/trunk/src/sqlos/adapter.py
==============================================================================
--- z3/sqlos/trunk/src/sqlos/adapter.py	(original)
+++ z3/sqlos/trunk/src/sqlos/adapter.py	Sun Mar 25 13:46:40 2007
@@ -22,6 +22,7 @@
 from sqlobject.converters import registerConverter
 from sqlobject.mysql import mysqlconnection
 from zope.rdb.interfaces import DatabaseException
+from zope.publisher.interfaces import Retry
 from zope.app.container.interfaces import INameChooser
 from zope.interface import implements
 
@@ -73,6 +74,8 @@
     def _executeRetry(self, conn, cursor, query):
         try:
             return cursor.execute(query)
+        except Retry:
+            raise
         except Exception, exc:
             raise DatabaseException(str(exc.args))
 
@@ -84,6 +87,8 @@
             except DatabaseException:
                 raise # We may have already raised Database exception in
                       # _executeRetry, so we re-raise it
+            except Retry:
+                raise
             except Exception, exc:
                 raise DatabaseException, tuple(exc.args)
         finally:
@@ -120,6 +125,8 @@
     def _executeRetry(*args, **kw):
         try:
             return mysqlconnection.MySQLConnection._executeRetry(*args, **kw)
+        except Retry:
+            raise
         except Exception, exc:
             raise DatabaseException(str(exc.args))
 


More information about the z3-checkins mailing list