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

Make sure the client jar file is small.

上级 74ada80b
...@@ -21,7 +21,6 @@ import org.h2.security.SHA256; ...@@ -21,7 +21,6 @@ import org.h2.security.SHA256;
import org.h2.store.fs.RecordingFileSystem; import org.h2.store.fs.RecordingFileSystem;
import org.h2.util.IOUtils; import org.h2.util.IOUtils;
import org.h2.util.New; import org.h2.util.New;
import org.h2.util.RecoverTester;
import org.h2.util.SortedProperties; import org.h2.util.SortedProperties;
import org.h2.util.StringUtils; import org.h2.util.StringUtils;
import org.h2.util.Utils; import org.h2.util.Utils;
...@@ -82,13 +81,13 @@ public class ConnectionInfo implements Cloneable { ...@@ -82,13 +81,13 @@ public class ConnectionInfo implements Cloneable {
parseName(); parseName();
String recoverTest = removeProperty("RECOVER_TEST", null); String recoverTest = removeProperty("RECOVER_TEST", null);
if (recoverTest != null) { if (recoverTest != null) {
RecoverTester tester = RecoverTester.getInstance(); RecordingFileSystem.register();
if (StringUtils.isNumber(recoverTest)) { try {
tester.setTestEvery(Integer.parseInt(recoverTest)); Utils.callStaticMethod("org.h2.store.RecoverTester.init", recoverTest);
} catch (Exception e) {
throw DbException.convert(e);
} }
name = RecordingFileSystem.PREFIX + name; name = RecordingFileSystem.PREFIX + name;
RecordingFileSystem.register();
RecordingFileSystem.setRecorder(tester);
} }
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* (http://h2database.com/html/license.html). * (http://h2database.com/html/license.html).
* Initial Developer: H2 Group * Initial Developer: H2 Group
*/ */
package org.h2.util; package org.h2.store;
import java.io.OutputStreamWriter; import java.io.OutputStreamWriter;
import java.io.PrintWriter; import java.io.PrintWriter;
...@@ -18,7 +18,12 @@ import org.h2.engine.Database; ...@@ -18,7 +18,12 @@ import org.h2.engine.Database;
import org.h2.engine.Session; import org.h2.engine.Session;
import org.h2.message.DbException; import org.h2.message.DbException;
import org.h2.store.fs.Recorder; import org.h2.store.fs.Recorder;
import org.h2.store.fs.RecordingFileSystem;
import org.h2.tools.Recover; import org.h2.tools.Recover;
import org.h2.util.IOUtils;
import org.h2.util.New;
import org.h2.util.StringUtils;
import org.h2.util.Utils;
/** /**
* A tool that simulates a crash while writing to the database, and then * A tool that simulates a crash while writing to the database, and then
...@@ -36,6 +41,19 @@ public class RecoverTester implements Recorder { ...@@ -36,6 +41,19 @@ public class RecoverTester implements Recorder {
private HashSet<String> knownErrors = New.hashSet(); private HashSet<String> knownErrors = New.hashSet();
private volatile boolean testing; private volatile boolean testing;
/**
* Initialize the recover test.
*
* @param recoverTest the value of the recover test parameter
*/
public static synchronized void init(String recoverTest) {
RecoverTester tester = RecoverTester.getInstance();
if (StringUtils.isNumber(recoverTest)) {
tester.setTestEvery(Integer.parseInt(recoverTest));
}
RecordingFileSystem.setRecorder(tester);
}
public static synchronized RecoverTester getInstance() { public static synchronized RecoverTester getInstance() {
if (instance == null) { if (instance == null) {
instance = new RecoverTester(); instance = new RecoverTester();
...@@ -88,7 +106,7 @@ public class RecoverTester implements Recorder { ...@@ -88,7 +106,7 @@ public class RecoverTester implements Recorder {
Database database = new Database(ci, null); Database database = new Database(ci, null);
// close the database // close the database
Session session = database.getSystemSession(); Session session = database.getSystemSession();
session.prepare("script to '" + testDatabase + ".sql'").query(0); session.prepare("script to '" + testDatabase + ".sql'").query(0);
session.prepare("shutdown immediately").update(); session.prepare("shutdown immediately").update();
database.removeSession(null); database.removeSession(null);
// everything OK - return // everything OK - return
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论