diff options
author | Godfrey Chan <godfreykfc@gmail.com> | 2014-08-15 13:23:55 -0700 |
---|---|---|
committer | Godfrey Chan <godfreykfc@gmail.com> | 2014-08-15 13:23:55 -0700 |
commit | 2faacbdcfb23b39518c43be91093ae760a7a7ea5 (patch) | |
tree | 8894bfbea8e8ec985eadacc794045869c21dea39 /activerecord/lib | |
parent | a59b9e2284353dcf8cf6d77b97aaa4255563c807 (diff) | |
parent | 2e90fe736de73cfd89eed68b38e03eb6175314bc (diff) | |
download | rails-2faacbdcfb23b39518c43be91093ae760a7a7ea5.tar.gz rails-2faacbdcfb23b39518c43be91093ae760a7a7ea5.tar.bz2 rails-2faacbdcfb23b39518c43be91093ae760a7a7ea5.zip |
Merge pull request #16435 from arthurnn/after_commit_run_on_top_level_trans_master
Fix regression on after_commit in nested transactions. (master)
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/transaction.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb index 4a7f2aaca8..8f06cf3a1f 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb @@ -111,6 +111,8 @@ module ActiveRecord def commit super connection.release_savepoint(savepoint_name) + parent = connection.transaction_manager.current_transaction + records.each { |r| parent.add_record(r) } end def full_rollback?; false; end @@ -169,16 +171,14 @@ module ActiveRecord transaction = begin_transaction options yield rescue Exception => error - transaction.rollback if transaction + rollback_transaction if transaction raise ensure begin - transaction.commit unless error + commit_transaction unless error rescue Exception transaction.rollback raise - ensure - @stack.pop if transaction end end |