aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2012-07-29 19:51:21 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2012-07-29 21:43:06 -0700
commitb3d1f5b630debcc2d0572a3e3af1855ef93300c2 (patch)
tree617008a41b3c71935856fb954931cde2992eb199
parent619e7c8db8b2339eae8f1f51eb2c1173808039cd (diff)
downloadrails-b3d1f5b630debcc2d0572a3e3af1855ef93300c2.tar.gz
rails-b3d1f5b630debcc2d0572a3e3af1855ef93300c2.tar.bz2
rails-b3d1f5b630debcc2d0572a3e3af1855ef93300c2.zip
freeze the header object
-rw-r--r--actionpack/lib/action_controller/metal/live.rb5
-rw-r--r--actionpack/test/dispatch/live_response_test.rb2
2 files changed, 7 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/metal/live.rb b/actionpack/lib/action_controller/metal/live.rb
index d1734f2138..3c1325cdb4 100644
--- a/actionpack/lib/action_controller/metal/live.rb
+++ b/actionpack/lib/action_controller/metal/live.rb
@@ -78,6 +78,11 @@ module ActionController # :nodoc:
super(status, header, body)
end
+ def commit!
+ headers.freeze
+ super
+ end
+
private
def build_buffer(response, body)
diff --git a/actionpack/test/dispatch/live_response_test.rb b/actionpack/test/dispatch/live_response_test.rb
index d17d516a0b..87a6b1383d 100644
--- a/actionpack/test/dispatch/live_response_test.rb
+++ b/actionpack/test/dispatch/live_response_test.rb
@@ -44,6 +44,7 @@ module ActionController
def test_headers_cannot_be_written_after_write
@response.stream.write 'omg'
+ assert @response.headers.frozen?
e = assert_raises(ActionDispatch::IllegalStateError) do
@response.headers['Content-Length'] = "zomg"
end
@@ -54,6 +55,7 @@ module ActionController
def test_headers_cannot_be_written_after_close
@response.stream.close
+ assert @response.headers.frozen?
e = assert_raises(ActionDispatch::IllegalStateError) do
@response.headers['Content-Length'] = "zomg"
end