7012823: TEST_BUG: java/nio/MappedByteBuffer tests leave file mappingsthat prevent clean-up (win)
authoralanb
Mon, 07 Feb 2011 13:53:36 +0000
changeset 8183 06852303ca4e
parent 8182 1afdfa9621b6
child 8184 526b9179a2bb
7012823: TEST_BUG: java/nio/MappedByteBuffer tests leave file mappingsthat prevent clean-up (win) Reviewed-by: forax
jdk/test/java/nio/MappedByteBuffer/Force.java
jdk/test/java/nio/MappedByteBuffer/ZeroMap.java
--- a/jdk/test/java/nio/MappedByteBuffer/Force.java	Mon Feb 07 09:11:26 2011 +0000
+++ b/jdk/test/java/nio/MappedByteBuffer/Force.java	Mon Feb 07 13:53:36 2011 +0000
@@ -37,14 +37,17 @@
         Random random = new Random();
         long filesize = random.nextInt(3*1024*1024);
         int cut = random.nextInt((int)filesize);
-        File file = new File("Blah");
-        RandomAccessFile raf = new RandomAccessFile(file, "rw");
-        raf.setLength(filesize);
-        FileChannel fc = raf.getChannel();
-        MappedByteBuffer buf1 = fc.map(
-                        FileChannel.MapMode.READ_WRITE, cut, filesize-cut);
-        buf1.force();
-        fc.close();
-        raf.close();
+        File file = File.createTempFile("Blah", null);
+        file.deleteOnExit();
+        try (RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
+            raf.setLength(filesize);
+            FileChannel fc = raf.getChannel();
+            MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, cut, filesize-cut);
+            mbb.force();
+        }
+
+        // improve chance that mapped buffer will be unmapped
+        System.gc();
+        Thread.sleep(500);
     }
 }
--- a/jdk/test/java/nio/MappedByteBuffer/ZeroMap.java	Mon Feb 07 09:11:26 2011 +0000
+++ b/jdk/test/java/nio/MappedByteBuffer/ZeroMap.java	Mon Feb 07 13:53:36 2011 +0000
@@ -37,16 +37,19 @@
         Random random = new Random();
         long filesize = random.nextInt(1024*1024);
         int cut = random.nextInt((int)filesize);
-        File file = new File("Blah");
-        RandomAccessFile raf = new RandomAccessFile(file, "rw");
-        raf.setLength(filesize);
-        FileChannel fc = raf.getChannel();
-        MappedByteBuffer buf1 = fc.map(
-                        FileChannel.MapMode.READ_WRITE, cut, 0);
-        buf1.force();
-        buf1.load();
-        buf1.isLoaded();
-        fc.close();
-        raf.close();
+        File file = File.createTempFile("Blah", null);
+        file.deleteOnExit();
+        try (RandomAccessFile raf = new RandomAccessFile(file, "rw")) {
+            raf.setLength(filesize);
+            FileChannel fc = raf.getChannel();
+            MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, cut, 0);
+            mbb.force();
+            mbb.load();
+            mbb.isLoaded();
+       }
+
+        // improve chance that mapped buffer will be unmapped
+        System.gc();
+        Thread.sleep(500);
     }
 }