diff -r 1afdfa9621b6 -r 06852303ca4e jdk/test/java/nio/MappedByteBuffer/ZeroMap.java --- 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); } }