changeset 413:fb3e3e1316b9

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
author sherman
date Wed, 16 Jul 2008 15:09:24 -0700
parents 844a53a24d06
children 06c4c56e8f3f
files test/java/nio/channels/FileChannel/ExpandingMap.java
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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 @@
 
 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 @@
             }
         }
 
+        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");
     }