7012823: TEST_BUG: java/nio/MappedByteBuffer tests leave file mappingsthat prevent clean-up (win)

Reviewed-by: forax
This commit is contained in:
Alan Bateman 2011-02-07 13:53:36 +00:00
parent b11e82495a
commit bc1f07b587
2 changed files with 26 additions and 20 deletions

View File

@ -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);
}
}

View File

@ -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);
}
}