Author: phd
Date: 2007-04-09 08:35:12 -0600 (Mon, 09 Apr 2007)
New Revision: 2491
Modified:
SQLObject/trunk/sqlobject/dbconnection.py
Log:
Fixed ConnectionHub.doInTransaction() - if the original connection was
processConnection - reset processConnection, not threadConnection.
Modified: SQLObject/trunk/sqlobject/dbconnection.py
===================================================================
--- SQLObject/trunk/sqlobject/dbconnection.py 2007-04-09 14:34:47 UTC (rev 2490)
+++ SQLObject/trunk/sqlobject/dbconnection.py 2007-04-09 14:35:12 UTC (rev 2491)
@@ -1011,9 +1011,17 @@
"""
# @@: In Python 2.5, something usable with with: should also
# be added.
- old_conn = self.getConnection()
+ try:
+ old_conn = self.threadingLocal.connection
+ old_conn_is_threading = True
+ except AttributeError:
+ old_conn = self.processConnection
+ old_conn_is_threading = False
conn = old_conn.transaction()
- self.threadConnection = conn
+ if old_conn_is_threading:
+ self.threadConnection = conn
+ else:
+ self.processConnection = conn
try:
try:
value = func(*args, **kw)
@@ -1024,7 +1032,10 @@
conn.commit(close=True)
return value
finally:
- self.threadConnection = old_conn
+ if old_conn_is_threading:
+ self.threadConnection = old_conn
+ else:
+ self.processConnection = old_conn
def _set_threadConnection(self, value):
self.threadingLocal.connection = value
|