Author: thomasm
Date: Thu Jul 9 11:58:53 2015
New Revision: 1690070
URL: http://svn.apache.org/r1690070
Log:
OAK-3089 LIRS cache: zero size cache causes IllegalArgumentException
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java?rev=1690070&r1=1690069&r2=1690070&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java
Thu Jul 9 11:58:53 2015
@@ -409,8 +409,8 @@ public class CacheLIRS<K, V> implements
* @param maxMemory the maximum size (1 or larger)
*/
public void setMaxMemory(long maxMemory) {
- if (maxMemory <= 0) {
- throw new IllegalArgumentException("Max memory must be larger than
0");
+ if (maxMemory < 0) {
+ throw new IllegalArgumentException("Max memory must not be
negative");
}
this.maxMemory = maxMemory;
if (segments != null) {
Modified:
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java?rev=1690070&r1=1690069&r2=1690070&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java
Thu Jul 9 11:58:53 2015
@@ -90,7 +90,7 @@ public class CacheTest {
// expected
}
try {
- test.setMaxMemory(0);
+ test.setMaxMemory(-1);
fail();
} catch (IllegalArgumentException e) {
// expected
@@ -629,6 +629,15 @@ public class CacheTest {
}
@Test
+ public void testZeroSizeCache() {
+ CacheLIRS<Integer, String> cache = createCache(0, 100);
+ cache.put(1, "Hello", 100);
+ cache.put(2, "World", 100);
+ cache.put(3, "!", 100);
+ assertFalse(cache.containsKey(1));
+ }
+
+ @Test
public void testRefresh() throws ExecutionException {
CacheLIRS<Integer, String> cache = new CacheLIRS.Builder().
maximumWeight(100).