From 6bce28ac3eec8d30f21404d6a10b270e0654d4d1 Mon Sep 17 00:00:00 2001 From: alanb 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 --- test/java/nio/MappedByteBuffer/Force.java | 21 +++++++++-------- test/java/nio/MappedByteBuffer/ZeroMap.java | 25 ++++++++++++--------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/test/java/nio/MappedByteBuffer/Force.java b/test/java/nio/MappedByteBuffer/Force.java index bd66a31ff..81f908bac 100644 --- a/test/java/nio/MappedByteBuffer/Force.java +++ b/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/test/java/nio/MappedByteBuffer/ZeroMap.java b/test/java/nio/MappedByteBuffer/ZeroMap.java index f80e72f80..81cd3532d 100644 --- a/test/java/nio/MappedByteBuffer/ZeroMap.java +++ b/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); } } -- GitLab