From 61dd937d11c65ecd54ee3544fb62b6398efe723e Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Wed, 16 Jul 2008 15:09:24 -0700 Subject: [PATCH] 6541641: (fc) java/nio/channels/FileChannel/ExpandingMap.java should clean up after itself Close channel and explicitly de-ref the mapped buffers before exit. Reviewed-by: alanb --- .../java/nio/channels/FileChannel/ExpandingMap.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/jdk/test/java/nio/channels/FileChannel/ExpandingMap.java b/jdk/test/java/nio/channels/FileChannel/ExpandingMap.java index 23ef97a6bbf..278badb9702 100644 --- a/jdk/test/java/nio/channels/FileChannel/ExpandingMap.java +++ b/jdk/test/java/nio/channels/FileChannel/ExpandingMap.java @@ -22,7 +22,7 @@ */ /* @test - * @bug 4938372 + * @bug 4938372 6541641 * @summary Flushing dirty pages prior to unmap can cause Cleaner thread to * abort VM if memory system has pages locked */ @@ -39,7 +39,7 @@ import java.util.ArrayList; public class ExpandingMap { - public static void main(String[] args) throws IOException { + public static void main(String[] args) throws Exception { int initialSize = 20480*1024; int maximumMapSize = 16*1024*1024; @@ -103,6 +103,13 @@ public class ExpandingMap { } } + fc.close(); + // cleanup the ref to mapped buffers so they can be GCed + for (int i = 0; i < buffers.length; i++) + buffers[i] = null; + System.gc(); + // Take a nap to wait for the Cleaner to cleanup those unrefed maps + Thread.sleep(1000); System.out.println("TEST PASSED"); }