提交 c3967281 authored 作者: Thomas Mueller's avatar Thomas Mueller

Memory mapped files: the system property h2.nioCleanerHack is now disabled by default.

上级 54bbc678
...@@ -426,11 +426,12 @@ public class SysProperties { ...@@ -426,11 +426,12 @@ public class SysProperties {
public static final boolean NIO_LOAD_MAPPED = getBooleanSetting("h2.nioLoadMapped", false); public static final boolean NIO_LOAD_MAPPED = getBooleanSetting("h2.nioLoadMapped", false);
/** /**
* System property <code>h2.nioCleanerHack</code> (default: true).<br /> * System property <code>h2.nioCleanerHack</code> (default: false).<br />
* If possible, use a hack to un-map the mapped file. See also * If enabled, use the reflection hack to un-map the mapped file if possible. If disabled,
* System.gc() is called in a loop until the object is garbage collected. See also
* http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4724038 * http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4724038
*/ */
public static final boolean NIO_CLEANER_HACK = getBooleanSetting("h2.nioCleanerHack", true); public static final boolean NIO_CLEANER_HACK = getBooleanSetting("h2.nioCleanerHack", false);
/** /**
* System property <code>h2.objectCache</code> (default: true).<br /> * System property <code>h2.objectCache</code> (default: true).<br />
......
...@@ -17,7 +17,6 @@ import java.sql.ResultSet; ...@@ -17,7 +17,6 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement; import java.sql.Statement;
import java.util.Random; import java.util.Random;
import org.h2.store.fs.FileObject; import org.h2.store.fs.FileObject;
import org.h2.store.fs.FileSystem; import org.h2.store.fs.FileSystem;
import org.h2.store.fs.FileSystemMemory; import org.h2.store.fs.FileSystemMemory;
...@@ -35,7 +34,9 @@ public class TestFileSystem extends TestBase { ...@@ -35,7 +34,9 @@ public class TestFileSystem extends TestBase {
* @param a ignored * @param a ignored
*/ */
public static void main(String... a) throws Exception { public static void main(String... a) throws Exception {
TestBase.createCaller().init().test(); TestBase test = TestBase.createCaller().init();
test.config.traceTest = true;
test.test();
} }
public void test() throws Exception { public void test() throws Exception {
...@@ -43,6 +44,7 @@ public class TestFileSystem extends TestBase { ...@@ -43,6 +44,7 @@ public class TestFileSystem extends TestBase {
testDatabaseInJar(); testDatabaseInJar();
// set default part size to 1 << 10 // set default part size to 1 << 10
FileSystem.getInstance("split:10:" + getBaseDir() + "/fs"); FileSystem.getInstance("split:10:" + getBaseDir() + "/fs");
testFileSystem("nioMapped:" + getBaseDir() + "/fs");
testFileSystem("split:nioMapped:" + getBaseDir() + "/fs"); testFileSystem("split:nioMapped:" + getBaseDir() + "/fs");
testFileSystem("split:" + getBaseDir() + "/fs"); testFileSystem("split:" + getBaseDir() + "/fs");
testFileSystem(getBaseDir() + "/fs"); testFileSystem(getBaseDir() + "/fs");
...@@ -168,7 +170,6 @@ public class TestFileSystem extends TestBase { ...@@ -168,7 +170,6 @@ public class TestFileSystem extends TestBase {
String[] list = fs.listFiles(fsBase); String[] list = fs.listFiles(fsBase);
assertEquals(1, list.length); assertEquals(1, list.length);
assertTrue(list[0].endsWith("test")); assertTrue(list[0].endsWith("test"));
fs.copy(fsBase + "/test", fsBase + "/test3"); fs.copy(fsBase + "/test", fsBase + "/test3");
fs.rename(fsBase + "/test3", fsBase + "/test2"); fs.rename(fsBase + "/test3", fsBase + "/test2");
assertTrue(!fs.exists(fsBase + "/test3")); assertTrue(!fs.exists(fsBase + "/test3"));
...@@ -190,7 +191,6 @@ public class TestFileSystem extends TestBase { ...@@ -190,7 +191,6 @@ public class TestFileSystem extends TestBase {
assertTrue(fs.tryDelete(fsBase + "/test2")); assertTrue(fs.tryDelete(fsBase + "/test2"));
fs.delete(fsBase + "/test"); fs.delete(fsBase + "/test");
if (fsBase.indexOf(FileSystemMemory.PREFIX) < 0 && fsBase.indexOf(FileSystemMemory.PREFIX_LZF) < 0) { if (fsBase.indexOf(FileSystemMemory.PREFIX) < 0 && fsBase.indexOf(FileSystemMemory.PREFIX_LZF) < 0) {
fs.createDirs(fsBase + "/testDir/test"); fs.createDirs(fsBase + "/testDir/test");
assertTrue(fs.isDirectory(fsBase + "/testDir")); assertTrue(fs.isDirectory(fsBase + "/testDir"));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论