aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorArthur Nogueira Neves <github@arthurnn.com>2015-12-05 15:57:19 -0500
committerArthur Nogueira Neves <github@arthurnn.com>2015-12-05 15:57:19 -0500
commitedc3deb9f1035811dfa6b4fedfaa18a0654c7018 (patch)
treec3a6eb5679393738b4f5605388407b66dfea25ab /activesupport
parentd08033f9b50bddd1bbad8818541cff0f67bcc260 (diff)
parent8c3bdb757838f86117fc83f24f8c4290d22a71d5 (diff)
downloadrails-edc3deb9f1035811dfa6b4fedfaa18a0654c7018.tar.gz
rails-edc3deb9f1035811dfa6b4fedfaa18a0654c7018.tar.bz2
rails-edc3deb9f1035811dfa6b4fedfaa18a0654c7018.zip
Merge pull request #22202 from grosser/grosser/write-consistent
even if a write fails, store the raw value
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/cache/mem_cache_store.rb8
-rw-r--r--activesupport/test/caching_test.rb8
2 files changed, 12 insertions, 4 deletions
diff --git a/activesupport/lib/active_support/cache/mem_cache_store.rb b/activesupport/lib/active_support/cache/mem_cache_store.rb
index 36f1ba2713..174913365a 100644
--- a/activesupport/lib/active_support/cache/mem_cache_store.rb
+++ b/activesupport/lib/active_support/cache/mem_cache_store.rb
@@ -36,13 +36,13 @@ module ActiveSupport
end
def write_entry(key, entry, options) # :nodoc:
- retval = super
- if options[:raw] && local_cache && retval
+ if options[:raw] && local_cache
raw_entry = Entry.new(entry.value.to_s)
raw_entry.expires_at = entry.expires_at
- local_cache.write_entry(key, raw_entry, options)
+ super(key, raw_entry, options)
+ else
+ super
end
- retval
end
end
diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb
index 7bef73136c..a1bd2d5356 100644
--- a/activesupport/test/caching_test.rb
+++ b/activesupport/test/caching_test.rb
@@ -655,6 +655,14 @@ module LocalCacheBehavior
end
end
+ def test_local_cache_of_read_nil
+ @cache.with_local_cache do
+ assert_equal nil, @cache.read('foo')
+ @cache.send(:bypass_local_cache) { @cache.write 'foo', 'bar' }
+ assert_equal nil, @cache.read('foo')
+ end
+ end
+
def test_local_cache_of_delete
@cache.with_local_cache do
@cache.write('foo', 'bar')