You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2015/07/09 14:01:38 UTC

svn commit: r1690071 - in /jackrabbit/oak/branches/1.2/oak-core/src: main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java test/java/org/apache/jackrabbit/oak/cache/CacheTest.java

Author: thomasm
Date: Thu Jul  9 12:01:37 2015
New Revision: 1690071

URL: http://svn.apache.org/r1690071
Log:
OAK-3089 LIRS cache: zero size cache causes IllegalArgumentException

Modified:
    jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java
    jackrabbit/oak/branches/1.2/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java

Modified: jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java?rev=1690071&r1=1690070&r2=1690071&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/CacheLIRS.java Thu Jul  9 12:01:37 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/branches/1.2/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.2/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java?rev=1690071&r1=1690070&r2=1690071&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.2/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java (original)
+++ jackrabbit/oak/branches/1.2/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/CacheTest.java Thu Jul  9 12:01:37 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).