From 19519308425a1d5ab20145f594f1629fb750082a Mon Sep 17 00:00:00 2001 From: gojomo Date: Tue, 29 Sep 2009 20:20:14 +0000 Subject: [PATCH] Improve test robustness in face of unpredictable GC * ObjectIdentityBdbCache.java (pageOutStaleEntries) package-protection for unit-test visibility * ObjectIdentityBdbCacheTest.java explicit pageOutStaleEntries, better assert-fail message --- .../java/org/archive/util/ObjectIdentityBdbCache.java | 4 +++- .../org/archive/util/ObjectIdentityBdbCacheTest.java | 9 +++++---- 2 files changed, 8 insertions(+), 5 deletions(-) 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()); }