ConcurrentMapCacheManager recreates caches in case of setAllowNullValues change
Issue: SPR-12026
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
* Copyright 2002-2014 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -56,7 +56,7 @@ public class ConcurrentMapCacheManagerTests {
|
||||
|
||||
@Test
|
||||
public void testStaticMode() {
|
||||
CacheManager cm = new ConcurrentMapCacheManager("c1", "c2");
|
||||
ConcurrentMapCacheManager cm = new ConcurrentMapCacheManager("c1", "c2");
|
||||
Cache cache1 = cm.getCache("c1");
|
||||
assertTrue(cache1 instanceof ConcurrentMapCache);
|
||||
Cache cache1again = cm.getCache("c1");
|
||||
@@ -76,6 +76,36 @@ public class ConcurrentMapCacheManagerTests {
|
||||
assertNull(cache1.get("key3").get());
|
||||
cache1.evict("key3");
|
||||
assertNull(cache1.get("key3"));
|
||||
|
||||
cm.setAllowNullValues(false);
|
||||
Cache cache1x = cm.getCache("c1");
|
||||
assertTrue(cache1x instanceof ConcurrentMapCache);
|
||||
assertTrue(cache1x != cache1);
|
||||
Cache cache2x = cm.getCache("c2");
|
||||
assertTrue(cache2x instanceof ConcurrentMapCache);
|
||||
assertTrue(cache2x != cache2);
|
||||
Cache cache3x = cm.getCache("c3");
|
||||
assertNull(cache3x);
|
||||
|
||||
cache1x.put("key1", "value1");
|
||||
assertEquals("value1", cache1x.get("key1").get());
|
||||
cache1x.put("key2", 2);
|
||||
assertEquals(2, cache1x.get("key2").get());
|
||||
try {
|
||||
cache1x.put("key3", null);
|
||||
fail("Should have thrown NullPointerException");
|
||||
}
|
||||
catch (NullPointerException ex) {
|
||||
// expected
|
||||
}
|
||||
|
||||
cm.setAllowNullValues(true);
|
||||
Cache cache1y = cm.getCache("c1");
|
||||
|
||||
cache1y.put("key3", null);
|
||||
assertNull(cache1y.get("key3").get());
|
||||
cache1y.evict("key3");
|
||||
assertNull(cache1y.get("key3"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user