7012823: TEST_BUG: java/nio/MappedByteBuffer tests leave file mappingsthat prevent clean-up (win)
Reviewed-by: forax
--- 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);
}
}