From bc1f07b5872996aa60d3939ee2efbf61af3566a1 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Mon, 7 Feb 2011 13:53:36 +0000 Subject: [PATCH] 7012823: TEST_BUG: java/nio/MappedByteBuffer tests leave file mappingsthat prevent clean-up (win) Reviewed-by: forax --- jdk/test/java/nio/MappedByteBuffer/Force.java | 21 +++++++++------- .../java/nio/MappedByteBuffer/ZeroMap.java | 25 +++++++++++-------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/jdk/test/java/nio/MappedByteBuffer/Force.java b/jdk/test/java/nio/MappedByteBuffer/Force.java index bd66a31ff21..81f908bacee 100644 --- a/jdk/test/java/nio/MappedByteBuffer/Force.java +++ b/jdk/test/java/nio/MappedByteBuffer/Force.java @@ -37,14 +37,17 @@ public class Force { 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); } } diff --git a/jdk/test/java/nio/MappedByteBuffer/ZeroMap.java b/jdk/test/java/nio/MappedByteBuffer/ZeroMap.java index f80e72f803d..81cd3532d13 100644 --- a/jdk/test/java/nio/MappedByteBuffer/ZeroMap.java +++ b/jdk/test/java/nio/MappedByteBuffer/ZeroMap.java @@ -37,16 +37,19 @@ public class ZeroMap { 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); } }