jdk/test/java/nio/MappedByteBuffer/ZeroMap.java
changeset 8183 06852303ca4e
parent 7668 d4a77089c587
child 9035 1255eb81cc2f
--- 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);
     }
 }