diff --git a/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb b/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb index 6d109f4624c9c40efdb5254dbb289ce1fc2763ac..03761b10bd9928e03631c33d75792bcba1a6e879 100644 --- a/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb +++ b/actionpack/lib/action_dispatch/middleware/session/abstract_store.rb @@ -15,7 +15,6 @@ def initialize(by, env) @by = by @env = env @loaded = false - @updated = false end def session_id @@ -33,7 +32,6 @@ def [](key) def []=(key, value) load! unless @loaded super(key.to_s, value) - @updated = true end def to_hash @@ -81,10 +79,6 @@ def loaded? @loaded end - def updated? - @updated - end - def load! stale_session_check! do id, session = @by.send(:load_session, @env) @@ -153,10 +147,7 @@ def call(env) options = env[ENV_SESSION_OPTIONS_KEY] if !session_data.is_a?(AbstractStore::SessionHash) || session_data.send(:loaded?) || options[:expire_after] - if session_data.is_a?(AbstractStore::SessionHash) - session_data.send(:load!) if !session_data.send(:loaded?) - return response if !session_data.send(:updated?) - end + session_data.send(:load!) if session_data.is_a?(AbstractStore::SessionHash) && !session_data.send(:loaded?) sid = options[:id] || generate_sid diff --git a/actionpack/test/activerecord/active_record_store_test.rb b/actionpack/test/activerecord/active_record_store_test.rb index 9ac33b3417b3ddb2467ba4167177f9d585817d45..47f8496181e883a16e7b91774460c09be777ca4e 100644 --- a/actionpack/test/activerecord/active_record_store_test.rb +++ b/actionpack/test/activerecord/active_record_store_test.rb @@ -22,11 +22,6 @@ def get_session_value render :text => "foo: #{session[:foo].inspect}" end - def set_cookie_and_get_session_value - cookies["kittens"] = { :value => "fluffy" } - render :text => "foo: #{session[:foo].inspect}" - end - def get_session_id session[:foo] render :text => "#{request.session_options[:id]}" @@ -83,23 +78,6 @@ def test_getting_nil_session_value end end - def test_getting_session_value_does_not_set_cookie - with_test_route_set do - get '/get_session_value' - assert_response :success - assert_equal "", headers["Set-Cookie"] - end - end - - def test_getting_session_value_and_setting_a_cookie_doesnt_delete_all_cookies - with_test_route_set do - get '/set_cookie_and_get_session_value' - assert_response :success - assert_equal 'foo: nil', response.body - assert_equal({"kittens" => "fluffy"}, response.cookies) - end - end - def test_setting_session_value_after_session_reset with_test_route_set do get '/set_session_value' diff --git a/actionpack/test/dispatch/session/mem_cache_store_test.rb b/actionpack/test/dispatch/session/mem_cache_store_test.rb index 278f2c83ea399be645adbaf373bf6f300ee88588..7561c93e4a39d809b012b70218a82b3d66d3bdfb 100644 --- a/actionpack/test/dispatch/session/mem_cache_store_test.rb +++ b/actionpack/test/dispatch/session/mem_cache_store_test.rb @@ -61,14 +61,6 @@ def test_getting_nil_session_value end end - def test_getting_session_value_does_not_set_cookie - with_test_route_set do - get '/get_session_value' - assert_response :success - assert_equal "", headers["Set-Cookie"] - end - end - def test_setting_session_value_after_session_reset with_test_route_set do get '/set_session_value'