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
This commit is contained in:
Xueming Shen 2008-07-16 15:09:24 -07:00
parent 2270e88840
commit 61dd937d11

View file

@ -22,7 +22,7 @@
*/ */
/* @test /* @test
* @bug 4938372 * @bug 4938372 6541641
* @summary Flushing dirty pages prior to unmap can cause Cleaner thread to * @summary Flushing dirty pages prior to unmap can cause Cleaner thread to
* abort VM if memory system has pages locked * abort VM if memory system has pages locked
*/ */
@ -39,7 +39,7 @@ import java.util.ArrayList;
public class ExpandingMap { public class ExpandingMap {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws Exception {
int initialSize = 20480*1024; int initialSize = 20480*1024;
int maximumMapSize = 16*1024*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"); System.out.println("TEST PASSED");
} }