aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract
diff options
context:
space:
mode:
authorRichard Schneeman <richard.schneeman@gmail.com>2015-11-06 16:32:51 -0600
committerRichard Schneeman <richard.schneeman@gmail.com>2015-11-06 16:32:51 -0600
commit92bc8cdb0771bf6ffcfb31ef58dba529527b514c (patch)
treedbef2dfcf006ecadf748de995c23dba857ac9d33 /activerecord/lib/active_record/connection_adapters/abstract
parent79d310fbd33c172f7f54d989191008581e028b64 (diff)
parent2fe4586974689842dbdf3354678438618089accc (diff)
downloadrails-92bc8cdb0771bf6ffcfb31ef58dba529527b514c.tar.gz
rails-92bc8cdb0771bf6ffcfb31ef58dba529527b514c.tar.bz2
rails-92bc8cdb0771bf6ffcfb31ef58dba529527b514c.zip
Merge pull request #21967 from kevinbuch/connection-middleware-mutation
Avoid mutating original response in connection management middleware
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb7
1 files changed, 3 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb b/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
index 758eedc37d..486b7b6d25 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb
@@ -960,12 +960,11 @@ module ActiveRecord
def call(env)
testing = env['rack.test']
- response = @app.call(env)
- response[2] = ::Rack::BodyProxy.new(response[2]) do
+ status, headers, body = @app.call(env)
+ proxy = ::Rack::BodyProxy.new(body) do
ActiveRecord::Base.clear_active_connections! unless testing
end
-
- response
+ [status, headers, proxy]
rescue Exception
ActiveRecord::Base.clear_active_connections! unless testing
raise