6541641: (fc) java/nio/channels/FileChannel/ExpandingMap.java should clean up after itself
authorsherman
Wed Jul 16 15:09:24 2008 -0700 (20 months ago)
changeset 411fb3e3e1316b9
parent 410844a53a24d06
child 41206c4c56e8f3f
6541641: (fc) java/nio/channels/FileChannel/ExpandingMap.java should clean up after itself
Summary: Close channel and explicitly de-ref the mapped buffers before exit.
Reviewed-by: alanb
test/java/nio/channels/FileChannel/ExpandingMap.java
--- a/test/java/nio/channels/FileChannel/ExpandingMap.java Mon Jul 14 14:03:42 2008 -0700
+++ b/test/java/nio/channels/FileChannel/ExpandingMap.java Wed Jul 16 15:09:24 2008 -0700
@@ -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");
}