diff --git a/commons/src/main/java/org/archive/util/ObjectIdentityBdbCache.java b/commons/src/main/java/org/archive/util/ObjectIdentityBdbCache.java index 995715d7..b05730fc 100644 --- a/commons/src/main/java/org/archive/util/ObjectIdentityBdbCache.java +++ b/commons/src/main/java/org/archive/util/ObjectIdentityBdbCache.java @@ -394,9 +394,11 @@ implements ObjectIdentityCache, Closeable, Serializable { } /** An incremental, poll-based expunger. + * + * Package-protected for unit-test visibility. */ @SuppressWarnings("unchecked") - private synchronized void pageOutStaleEntries() { + synchronized void pageOutStaleEntries() { int c = 0; long startTime = System.currentTimeMillis(); for(SoftEntry entry; (entry = (SoftEntry)refQueue.poll()) != null;) { diff --git a/commons/src/test/java/org/archive/util/ObjectIdentityBdbCacheTest.java b/commons/src/test/java/org/archive/util/ObjectIdentityBdbCacheTest.java index 325003d5..5a2fb9db 100644 --- a/commons/src/test/java/org/archive/util/ObjectIdentityBdbCacheTest.java +++ b/commons/src/test/java/org/archive/util/ObjectIdentityBdbCacheTest.java @@ -181,11 +181,12 @@ public class ObjectIdentityBdbCacheTest extends TmpDirTestCase { assertEquals(cache.size(), 10000); TestUtils.forceScarceMemory(); Thread.sleep(3000); - // The 'canary' trick makes this explicit expunge, or - // an expunge triggered by a get() or put...(), unnecessary - // cache.expungeStaleEntries(); + // The 'canary' trick may make this explicit page-out, or + // a page-out riggered by a get() or put...(), unnecessary -- + // but we include anyway. + cache.pageOutStaleEntries(); System.out.println(cache.size()+","+cache.memMap.size()); - assertEquals(0, cache.memMap.size()); + assertEquals("memMap not cleared", 0, cache.memMap.size()); }