Skip to content

Commit

Permalink
Move join to before _SESSION_STATE is set
Browse files Browse the repository at this point in the history
If the join() errors, _SESSION_STATE does not get
wedged.

fixes zopefoundation#2
  • Loading branch information
Brian Sutherland committed Aug 30, 2013
1 parent 970a2da commit a3d9c95
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/zope/sqlalchemy/datamanager.py
Expand Up @@ -64,6 +64,7 @@ def __init__(self, session, status, transaction_manager, keep_session=False):
self.transaction_manager = transaction_manager
self.tx = session.transaction._iterate_parents()[-1]
self.session = session
transaction_manager.get().join(self)
_SESSION_STATE[id(session)] = status
self.state = 'init'
self.keep_session = keep_session
Expand Down Expand Up @@ -198,8 +199,7 @@ def join_transaction(session, initial_state=STATUS_ACTIVE, transaction_manager=z
DataManager = TwoPhaseSessionDataManager
else:
DataManager = SessionDataManager
transaction_manager.get().join(DataManager(session, initial_state, transaction_manager, keep_session=keep_session))

DataManager(session, initial_state, transaction_manager, keep_session=keep_session)

def mark_changed(session, transaction_manager=zope_transaction.manager):
"""Mark a session as needing to be committed.
Expand Down

0 comments on commit a3d9c95

Please sign in to comment.