aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-09-29 14:36:32 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2015-09-29 14:36:32 -0700
commitea3908535a832c80adfb251527609aa75e982f6d (patch)
tree9d2f69ec1a64821be452c907d481b49ed3faba9a
parent42070f892b1b625f89c3d9fe804cf1b43b25633e (diff)
downloadrails-ea3908535a832c80adfb251527609aa75e982f6d.tar.gz
rails-ea3908535a832c80adfb251527609aa75e982f6d.tar.bz2
rails-ea3908535a832c80adfb251527609aa75e982f6d.zip
call `default_middleware_stack` before merging stacks
`default_middleware_stack` seems to kick off the `on_load` calls that may mutate the middleware stack. We have to call that method before merging middleware stacks, otherwise the middleware stacks get mutated *after* the app middleware stack is built.
-rw-r--r--railties/lib/rails/engine.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb
index 457a50e649..a9d98a9d92 100644
--- a/railties/lib/rails/engine.rb
+++ b/railties/lib/rails/engine.rb
@@ -508,7 +508,8 @@ module Rails
def app
@app || @app_build_lock.synchronize {
@app ||= begin
- config.middleware = build_middleware.merge_into(default_middleware_stack)
+ stack = default_middleware_stack
+ config.middleware = build_middleware.merge_into(stack)
config.middleware.build(endpoint)
end
}