You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2019/04/30 10:38:08 UTC
[ignite] branch gg-18539 updated: GG-18539: Remove useless code.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch gg-18539
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/gg-18539 by this push:
new 1cae094 GG-18539: Remove useless code.
1cae094 is described below
commit 1cae09495c1fb4f81528378df35174eade384fd7
Author: Andrey V. Mashenkov <an...@gmail.com>
AuthorDate: Tue Apr 30 13:37:56 2019 +0300
GG-18539: Remove useless code.
---
modules/h2/pom.xml | 8 +-
modules/h2/src/test/java/org/h2/test/TestAll.java | 5 -
.../src/test/java/org/h2/test/server/TestWeb.java | 1198 --------------------
.../test/java/org/h2/test/server/WebClient.java | 153 ---
.../test/java/org/h2/test/unit/TestPgServer.java | 578 ----------
.../test/java/org/h2/test/unit/TestServlet.java | 402 -------
.../java/org/h2/test/unit/TestTraceSystem.java | 2 +-
7 files changed, 4 insertions(+), 2342 deletions(-)
diff --git a/modules/h2/pom.xml b/modules/h2/pom.xml
index 903e454..4025136 100644
--- a/modules/h2/pom.xml
+++ b/modules/h2/pom.xml
@@ -56,11 +56,6 @@
<dependencies>
<!-- START COMPILE DEPENDENCIES !-->
<dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
- </dependency>
- <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j16.version}</version>
@@ -182,6 +177,9 @@
<additionalClasspathElement>${project.build.outputDirectory}</additionalClasspathElement>
<additionalClasspathElement>${project.build.testOutputDirectory}</additionalClasspathElement>
</additionalClasspathElements>
+ <includes>
+ <include>H2AllTestsSuite.java</include>
+ </includes>
<excludes>
<exclude>TestAllJunit.java</exclude>
<exclude>H2TestCase.java</exclude>
diff --git a/modules/h2/src/test/java/org/h2/test/TestAll.java b/modules/h2/src/test/java/org/h2/test/TestAll.java
index 2fae8ee..d75e962 100644
--- a/modules/h2/src/test/java/org/h2/test/TestAll.java
+++ b/modules/h2/src/test/java/org/h2/test/TestAll.java
@@ -128,7 +128,6 @@ import org.h2.test.scripts.TestScript;
import org.h2.test.server.TestAutoServer;
import org.h2.test.server.TestInit;
import org.h2.test.server.TestNestedLoop;
-import org.h2.test.server.TestWeb;
import org.h2.test.store.TestCacheConcurrentLIRS;
import org.h2.test.store.TestCacheLIRS;
import org.h2.test.store.TestCacheLongKeyLIRS;
@@ -211,7 +210,6 @@ import org.h2.test.unit.TestPageStore;
import org.h2.test.unit.TestPageStoreCoverage;
import org.h2.test.unit.TestPattern;
import org.h2.test.unit.TestPerfectHash;
-import org.h2.test.unit.TestPgServer;
import org.h2.test.unit.TestReader;
import org.h2.test.unit.TestRecovery;
import org.h2.test.unit.TestReopen;
@@ -875,7 +873,6 @@ kill -9 `jps -l | grep "org.h2.test." | cut -d " " -f 1`
addTest(new TestRandomSQL());
addTest(new TestQueryCache());
addTest(new TestUrlJavaObjectSerializer());
- addTest(new TestWeb());
// other unsafe
addTest(new TestOptimizations());
@@ -909,7 +906,6 @@ kill -9 `jps -l | grep "org.h2.test." | cut -d " " -f 1`
addTest(new TestMultiThreadedKernel());
addTest(new TestPageStore());
addTest(new TestPageStoreCoverage());
- addTest(new TestPgServer());
addTest(new TestRecovery());
addTest(new RecoverLobTest());
addTest(createTest("org.h2.test.unit.TestServlet"));
@@ -917,7 +913,6 @@ kill -9 `jps -l | grep "org.h2.test." | cut -d " " -f 1`
addTest(new TestUpgrade());
addTest(new TestUsingIndex());
addTest(new TestValue());
- addTest(new TestWeb());
runAddedTests();
diff --git a/modules/h2/src/test/java/org/h2/test/server/TestWeb.java b/modules/h2/src/test/java/org/h2/test/server/TestWeb.java
deleted file mode 100644
index e3f77c9..0000000
--- a/modules/h2/src/test/java/org/h2/test/server/TestWeb.java
+++ /dev/null
@@ -1,1198 +0,0 @@
-/*
- * Copyright 2004-2019 H2 Group. Multiple-Licensed under the MPL 2.0,
- * and the EPL 1.0 (http://h2database.com/html/license.html).
- * Initial Developer: H2 Group
- */
-package org.h2.test.server;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
-import java.net.ConnectException;
-import java.nio.charset.StandardCharsets;
-import java.security.Principal;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Vector;
-
-import javax.servlet.AsyncContext;
-import javax.servlet.DispatcherType;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletInputStream;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.WriteListener;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpUpgradeHandler;
-import javax.servlet.http.Part;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-
-import org.h2.api.ErrorCode;
-import org.h2.engine.Constants;
-import org.h2.engine.SysProperties;
-import org.h2.server.web.WebServlet;
-import org.h2.store.fs.FileUtils;
-import org.h2.test.TestBase;
-import org.h2.test.TestDb;
-import org.h2.test.utils.AssertThrows;
-import org.h2.tools.Server;
-import org.h2.util.StringUtils;
-import org.h2.util.Task;
-
-/**
- * Tests the H2 Console application.
- */
-public class TestWeb extends TestDb {
-
- private static volatile String lastUrl;
-
- /**
- * Run just this test.
- *
- * @param a ignored
- */
- public static void main(String... a) throws Exception {
- TestBase.createCaller().init().test();
- }
-
- @Override
- public void test() throws Exception {
- testServlet();
- testWrongParameters();
- testTools();
- testAlreadyRunning();
- testStartWebServerWithConnection();
- testServer();
- testWebApp();
- testIfExists();
- }
-
- private void testServlet() throws Exception {
- WebServlet servlet = new WebServlet();
- final HashMap<String, String> configMap = new HashMap<>();
- configMap.put("ifExists", "");
- configMap.put("", "");
- configMap.put("", "");
- configMap.put("", "");
- ServletConfig config = new ServletConfig() {
-
- @Override
- public String getServletName() {
- return "H2Console";
- }
-
- @Override
- public Enumeration<String> getInitParameterNames() {
- return new Vector<>(configMap.keySet()).elements();
- }
-
- @Override
- public String getInitParameter(String name) {
- return configMap.get(name);
- }
-
- @Override
- public ServletContext getServletContext() {
- return null;
- }
-
- };
- servlet.init(config);
-
-
- TestHttpServletRequest request = new TestHttpServletRequest();
- request.setPathInfo("/");
- TestHttpServletResponse response = new TestHttpServletResponse();
- TestServletOutputStream out = new TestServletOutputStream();
- response.setServletOutputStream(out);
- servlet.doGet(request, response);
- assertContains(out.toString(), "location.href = 'login.jsp");
- servlet.destroy();
- }
-
- private static void testWrongParameters() {
- new AssertThrows(ErrorCode.FEATURE_NOT_SUPPORTED_1) {
- @Override
- public void test() throws SQLException {
- Server.createPgServer("-pgPort 8182");
- }};
- new AssertThrows(ErrorCode.FEATURE_NOT_SUPPORTED_1) {
- @Override
- public void test() throws SQLException {
- Server.createTcpServer("-tcpPort 8182");
- }};
- new AssertThrows(ErrorCode.FEATURE_NOT_SUPPORTED_1) {
- @Override
- public void test() throws SQLException {
- Server.createWebServer("-webPort=8182");
- }};
- }
-
- private void testAlreadyRunning() throws Exception {
- Server server = Server.createWebServer(
- "-webPort", "8182", "-properties", "null");
- server.start();
- assertContains(server.getStatus(), "server running");
- Server server2 = Server.createWebServer(
- "-webPort", "8182", "-properties", "null");
- assertEquals("Not started", server2.getStatus());
- try {
- server2.start();
- fail();
- } catch (Exception e) {
- assertContains(e.toString(), "port may be in use");
- assertContains(server2.getStatus(),
- "could not be started");
- }
- server.stop();
- }
-
- private void testTools() throws Exception {
- if (config.memory || config.cipher != null) {
- return;
- }
- deleteDb(getTestName());
- Connection conn = getConnection(getTestName());
- conn.createStatement().execute(
- "create table test(id int) as select 1");
- conn.close();
- Server server = new Server();
- server.setOut(new PrintStream(new ByteArrayOutputStream()));
- server.runTool("-web", "-webPort", "8182",
- "-properties", "null", "-tcp", "-tcpPort", "9101", "-webAdminPassword", "123");
- try {
- String url = "http://localhost:8182";
- WebClient client;
- String result;
- client = new WebClient();
- result = client.get(url);
- client.readSessionId(result);
- result = client.get(url, "adminLogin.do?password=123");
- result = client.get(url, "tools.jsp");
- FileUtils.delete(getBaseDir() + "/backup.zip");
- result = client.get(url, "tools.do?tool=Backup&args=-dir," +
- getBaseDir() + ",-db," + getTestName() + ",-file," +
- getBaseDir() + "/backup.zip");
- deleteDb(getTestName());
- assertTrue(FileUtils.exists(getBaseDir() + "/backup.zip"));
- result = client.get(url,
- "tools.do?tool=DeleteDbFiles&args=-dir," +
- getBaseDir() + ",-db," + getTestName());
- String fn = getBaseDir() + "/" + getTestName();
- if (config.mvStore) {
- fn += Constants.SUFFIX_MV_FILE;
- } else {
- fn += Constants.SUFFIX_PAGE_FILE;
- }
- assertFalse(FileUtils.exists(fn));
- result = client.get(url, "tools.do?tool=Restore&args=-dir," +
- getBaseDir() + ",-db," + getTestName() +",-file," + getBaseDir() +
- "/backup.zip");
- assertTrue(FileUtils.exists(fn));
- FileUtils.delete(getBaseDir() + "/web.h2.sql");
- FileUtils.delete(getBaseDir() + "/backup.zip");
- result = client.get(url, "tools.do?tool=Recover&args=-dir," +
- getBaseDir() + ",-db," + getTestName());
- assertTrue(FileUtils.exists(getBaseDir() + "/" + getTestName() + ".h2.sql"));
- FileUtils.delete(getBaseDir() + "/web.h2.sql");
- result = client.get(url, "tools.do?tool=RunScript&args=-script," +
- getBaseDir() + "/" + getTestName() + ".h2.sql,-url," +
- getURL(getTestName(), true) +
- ",-user," + getUser() + ",-password," + getPassword());
- FileUtils.delete(getBaseDir() + "/" + getTestName() + ".h2.sql");
- assertTrue(FileUtils.exists(fn));
- deleteDb(getTestName());
- } finally {
- server.shutdown();
- }
- }
-
- private void testServer() throws Exception {
- Server server = new Server();
- server.setOut(new PrintStream(new ByteArrayOutputStream()));
- server.runTool("-web", "-webPort", "8182", "-properties",
- "null", "-tcp", "-tcpPort", "9101");
- try {
- String url = "http://localhost:8182";
- WebClient client;
- String result;
- client = new WebClient();
- client.setAcceptLanguage("de-de,de;q=0.5");
- result = client.get(url);
- client.readSessionId(result);
- result = client.get(url, "login.jsp");
- assertEquals("text/html", client.getContentType());
- assertContains(result, "Einstellung");
- client.get(url, "favicon.ico");
- assertEquals("image/x-icon", client.getContentType());
- client.get(url, "ico_ok.gif");
- assertEquals("image/gif", client.getContentType());
- client.get(url, "tree.js");
- assertEquals("text/javascript", client.getContentType());
- client.get(url, "stylesheet.css");
- assertEquals("text/css", client.getContentType());
- client.get(url, "admin.do");
- try {
- client.get(url, "adminShutdown.do");
- } catch (IOException e) {
- // expected
- Thread.sleep(1000);
- }
- } finally {
- server.shutdown();
- }
- // it should be stopped now
- server = Server.createTcpServer("-tcpPort", "9101");
- server.start();
- server.stop();
- }
-
- private void testIfExists() throws Exception {
- Connection conn = getConnection("jdbc:h2:mem:" + getTestName(),
- getUser(), getPassword());
- Server server = new Server();
- server.setOut(new PrintStream(new ByteArrayOutputStream()));
- // -ifExists is the default
- server.runTool("-web", "-webPort", "8182",
- "-properties", "null", "-tcp", "-tcpPort", "9101");
- try {
- String url = "http://localhost:8182";
- WebClient client;
- String result;
- client = new WebClient();
- result = client.get(url);
- client.readSessionId(result);
- result = client.get(url, "login.jsp");
- result = client.get(url, "test.do?driver=org.h2.Driver" +
- "&url=jdbc:h2:mem:" + getTestName() +
- "&user=" + getUser() + "&password=" +
- getPassword() + "&name=_test_");
- assertTrue(result.indexOf("Exception") < 0);
- result = client.get(url, "test.do?driver=org.h2.Driver" +
- "&url=jdbc:h2:mem:" + getTestName() + "Wrong" +
- "&user=" + getUser() + "&password=" +
- getPassword() + "&name=_test_");
- assertContains(result, "Exception");
- } finally {
- server.shutdown();
- conn.close();
- }
-
- }
-
- private void testWebApp() throws Exception {
- Server server = new Server();
- server.setOut(new PrintStream(new ByteArrayOutputStream()));
- server.runTool("-ifNotExists", "-web", "-webPort", "8182",
- "-properties", "null", "-tcp", "-tcpPort", "9101");
- try {
- String url = "http://localhost:8182";
- WebClient client;
- String result;
- client = new WebClient();
- result = client.get(url);
- client.readSessionId(result);
- client.get(url, "login.jsp");
- client.get(url, "adminSave.do");
- result = client.get(url, "index.do?language=de");
- result = client.get(url, "login.jsp");
- assertContains(result, "Einstellung");
- result = client.get(url, "index.do?language=en");
- result = client.get(url, "login.jsp");
- assertTrue(result.indexOf("Einstellung") < 0);
- result = client.get(url, "test.do?driver=abc" +
- "&url=jdbc:abc:mem: " + getTestName() +
- "&user=sa&password=sa&name=_test_");
- assertContains(result, "Exception");
- result = client.get(url, "test.do?driver=org.h2.Driver" +
- "&url=jdbc:h2:mem:" + getTestName() +
- "&user=sa&password=sa&name=_test_");
- assertTrue(result.indexOf("Exception") < 0);
- result = client.get(url, "login.do?driver=org.h2.Driver" +
- "&url=jdbc:h2:mem:" + getTestName() +
- "&user=sa&password=sa&name=_test_");
- result = client.get(url, "header.jsp");
- result = client.get(url, "query.do?sql=" +
- "create table test(id int primary key, name varchar);" +
- "insert into test values(1, 'Hello')");
- result = client.get(url, "query.do?sql=create sequence test_sequence");
- result = client.get(url, "query.do?sql=create schema test_schema");
- result = client.get(url, "query.do?sql=" +
- "create view test_view as select * from test");
- result = client.get(url, "tables.do");
- result = client.get(url, "query.jsp");
- result = client.get(url, "query.do?sql=select * from test");
- assertContains(result, "Hello");
- result = client.get(url, "query.do?sql=select * from test");
- result = client.get(url, "query.do?sql=@META select * from test");
- assertContains(result, "typeName");
- result = client.get(url, "query.do?sql=delete from test");
- result = client.get(url, "query.do?sql=@LOOP 1000 " +
- "insert into test values(?, 'Hello ' || ?/*RND*/)");
- assertContains(result, "1000 * (Prepared)");
- result = client.get(url, "query.do?sql=select * from test");
- result = client.get(url, "query.do?sql=@list select * from test");
- assertContains(result, "Row #");
- result = client.get(url, "query.do?sql=@parameter_meta " +
- "select * from test where id = ?");
- assertContains(result, "INTEGER");
- result = client.get(url, "query.do?sql=@edit select * from test");
- assertContains(result, "editResult.do");
- result = client.get(url, "query.do?sql=" +
- StringUtils.urlEncode("select space(100001) a, 1 b"));
- assertContains(result, "...");
- result = client.get(url, "query.do?sql=" +
- StringUtils.urlEncode("call '<&>'"));
- assertContains(result, "<&>");
- result = client.get(url, "query.do?sql=@HISTORY");
- result = client.get(url, "getHistory.do?id=4");
- assertContains(result, "select * from test");
- result = client.get(url, "query.do?sql=delete from test");
- // op 1 (row -1: insert, otherwise update): ok,
- // 2: delete 3: cancel,
- result = client.get(url, "editResult.do?sql=@edit " +
- "select * from test&op=1&row=-1&r-1c1=1&r-1c2=Hello");
- assertContains(result, "1");
- assertContains(result, "Hello");
- result = client.get(url, "editResult.do?sql=@edit " +
- "select * from test&op=1&row=1&r1c1=1&r1c2=Hallo");
- assertContains(result, "1");
- assertContains(result, "Hallo");
- result = client.get(url, "query.do?sql=select * from test");
- assertContains(result, "1");
- assertContains(result, "Hallo");
- result = client.get(url, "editResult.do?sql=@edit " +
- "select * from test&op=2&row=1");
- result = client.get(url, "query.do?sql=select * from test");
- assertContains(result, "no rows");
-
- // autoComplete
- result = client.get(url, "autoCompleteList.do?query=select 'abc");
- assertContains(StringUtils.urlDecode(result), "'");
- result = client.get(url, "autoCompleteList.do?query=select 'abc''");
- assertContains(StringUtils.urlDecode(result), "'");
- result = client.get(url, "autoCompleteList.do?query=select 'abc' ");
- assertContains(StringUtils.urlDecode(result), "||");
- result = client.get(url, "autoCompleteList.do?query=select 'abc' |");
- assertContains(StringUtils.urlDecode(result), "|");
- result = client.get(url, "autoCompleteList.do?query=select 'abc' || ");
- assertContains(StringUtils.urlDecode(result), "'");
- result = client.get(url, "autoCompleteList.do?query=call timestamp '2");
- assertContains(result, "20");
- result = client.get(url, "autoCompleteList.do?query=call time '1");
- assertContains(StringUtils.urlDecode(result), "12:00:00");
- result = client.get(url, "autoCompleteList.do?query=" +
- "call timestamp '2001-01-01 12:00:00.");
- assertContains(result, "nanoseconds");
- result = client.get(url, "autoCompleteList.do?query=" +
- "call timestamp '2001-01-01 12:00:00.00");
- assertContains(result, "nanoseconds");
- result = client.get(url, "autoCompleteList.do?query=" +
- "call $$ hello world");
- assertContains(StringUtils.urlDecode(result), "$$");
- result = client.get(url, "autoCompleteList.do?query=alter index ");
- assertContains(StringUtils.urlDecode(result), "character");
- result = client.get(url, "autoCompleteList.do?query=alter index idx");
- assertContains(StringUtils.urlDecode(result), "character");
- result = client.get(url, "autoCompleteList.do?query=alter index \"IDX_");
- assertContains(StringUtils.urlDecode(result), "\"");
- result = client.get(url, "autoCompleteList.do?query=alter index \"IDX_\"\"");
- assertContains(StringUtils.urlDecode(result), "\"");
- result = client.get(url, "autoCompleteList.do?query=help ");
- assertContains(result, "anything");
- result = client.get(url, "autoCompleteList.do?query=help select");
- assertContains(result, "anything");
- result = client.get(url, "autoCompleteList.do?query=call ");
- assertContains(result, "0x");
- result = client.get(url, "autoCompleteList.do?query=call 0");
- assertContains(result, ".");
- result = client.get(url, "autoCompleteList.do?query=se");
- assertContains(result, "select");
- assertContains(result, "set");
- result = client.get(url, "tables.do");
- assertContains(result, "TEST");
- result = client.get(url, "autoCompleteList.do?query=" +
- "select * from ");
- assertContains(result, "test");
- result = client.get(url, "autoCompleteList.do?query=" +
- "select * from test t where t.");
- assertContains(result, "id");
- result = client.get(url, "autoCompleteList.do?query=" +
- "select id x from test te where t");
- assertContains(result, "te");
- result = client.get(url, "autoCompleteList.do?query=" +
- "select * from test where name = '");
- assertContains(StringUtils.urlDecode(result), "'");
- result = client.get(url, "autoCompleteList.do?query=" +
- "select * from information_schema.columns where columns.");
- assertContains(result, "column_name");
-
- result = client.get(url, "query.do?sql=delete from test");
-
- // special commands
- result = client.get(url, "query.do?sql=@autocommit_true");
- assertContains(result, "Auto commit is now ON");
- result = client.get(url, "query.do?sql=@autocommit_false");
- assertContains(result, "Auto commit is now OFF");
- result = client.get(url, "query.do?sql=@cancel");
- assertContains(result, "There is currently no running statement");
- result = client.get(url,
- "query.do?sql=@generated insert into test(id) values(test_sequence.nextval)");
- assertContains(result, "<tr><th>ID</th></tr><tr><td>1</td></tr>");
- result = client.get(url, "query.do?sql=@maxrows 2000");
- assertContains(result, "Max rowcount is set");
- result = client.get(url, "query.do?sql=@password_hash user password");
- assertContains(result,
- "501cf5c163c184c26e62e76d25d441979f8f25dfd7a683484995b4a43a112fdf");
- result = client.get(url, "query.do?sql=@sleep 1");
- assertContains(result, "Ok");
- result = client.get(url, "query.do?sql=@catalogs");
- assertContains(result, "PUBLIC");
- result = client.get(url,
- "query.do?sql=@column_privileges null null null TEST null");
- assertContains(result, "PRIVILEGE");
- result = client.get(url,
- "query.do?sql=@cross_references null null null TEST");
- assertContains(result, "PKTABLE_NAME");
- result = client.get(url,
- "query.do?sql=@exported_keys null null null TEST");
- assertContains(result, "PKTABLE_NAME");
- result = client.get(url,
- "query.do?sql=@imported_keys null null null TEST");
- assertContains(result, "PKTABLE_NAME");
- result = client.get(url,
- "query.do?sql=@primary_keys null null null TEST");
- assertContains(result, "PK_NAME");
- result = client.get(url, "query.do?sql=@procedures null null null");
- assertContains(result, "PROCEDURE_NAME");
- result = client.get(url, "query.do?sql=@procedure_columns");
- assertContains(result, "PROCEDURE_NAME");
- result = client.get(url, "query.do?sql=@schemas");
- assertContains(result, "PUBLIC");
- result = client.get(url, "query.do?sql=@table_privileges");
- assertContains(result, "PRIVILEGE");
- result = client.get(url, "query.do?sql=@table_types");
- assertContains(result, "SYSTEM TABLE");
- result = client.get(url, "query.do?sql=@type_info");
- assertContains(result, "CLOB");
- result = client.get(url, "query.do?sql=@version_columns");
- assertContains(result, "PSEUDO_COLUMN");
- result = client.get(url, "query.do?sql=@attributes");
- assertContains(result, "Feature not supported: "attributes"");
- result = client.get(url, "query.do?sql=@super_tables");
- assertContains(result, "SUPERTABLE_NAME");
- result = client.get(url, "query.do?sql=@super_types");
- assertContains(result, "Feature not supported: "superTypes"");
- result = client.get(url, "query.do?sql=@prof_start");
- assertContains(result, "Ok");
- result = client.get(url, "query.do?sql=@prof_stop");
- assertContains(result, "Top Stack Trace(s)");
- result = client.get(url,
- "query.do?sql=@best_row_identifier null null TEST");
- assertContains(result, "SCOPE");
- assertContains(result, "COLUMN_NAME");
- assertContains(result, "ID");
- result = client.get(url, "query.do?sql=@udts");
- assertContains(result, "CLASS_NAME");
- result = client.get(url, "query.do?sql=@udts null null null 1,2,3");
- assertContains(result, "CLASS_NAME");
- result = client.get(url, "query.do?sql=@LOOP 10 " +
- "@STATEMENT insert into test values(?, 'Hello')");
- result = client.get(url, "query.do?sql=select * from test");
- assertContains(result, "8");
- result = client.get(url, "query.do?sql=@EDIT select * from test");
- assertContains(result, "editRow");
-
- result = client.get(url, "query.do?sql=@AUTOCOMMIT TRUE");
- result = client.get(url, "query.do?sql=@AUTOCOMMIT FALSE");
- result = client.get(url, "query.do?sql=@TRANSACTION_ISOLATION");
- result = client.get(url, "query.do?sql=@SET MAXROWS 1");
- result = client.get(url, "query.do?sql=select * from test order by id");
- result = client.get(url, "query.do?sql=@SET MAXROWS 1000");
- result = client.get(url, "query.do?sql=@TABLES");
- assertContains(result, "TEST");
- result = client.get(url, "query.do?sql=@COLUMNS null null TEST");
- assertContains(result, "ID");
- result = client.get(url, "query.do?sql=@INDEX_INFO null null TEST");
- assertContains(result, "PRIMARY");
- result = client.get(url, "query.do?sql=@CATALOG");
- assertContains(result, "PUBLIC");
- result = client.get(url, "query.do?sql=@MEMORY");
- assertContains(result, "Used");
-
- result = client.get(url, "query.do?sql=@INFO");
- assertContains(result, "getCatalog");
-
- result = client.get(url, "logout.do");
- result = client.get(url, "login.do?driver=org.h2.Driver&" +
- "url=jdbc:h2:mem:" + getTestName() +
- "&user=sa&password=sa&name=_test_");
-
- result = client.get(url, "logout.do");
- result = client.get(url, "settingRemove.do?name=_test_");
-
- client.get(url, "admin.do");
- } finally {
- server.shutdown();
- }
- }
-
- private void testStartWebServerWithConnection() throws Exception {
- String old = System.getProperty(SysProperties.H2_BROWSER);
- try {
- System.setProperty(SysProperties.H2_BROWSER,
- "call:" + TestWeb.class.getName() + ".openBrowser");
- Server.openBrowser("testUrl");
- assertEquals("testUrl", lastUrl);
- String oldUrl = lastUrl;
- final Connection conn = getConnection(getTestName());
- Task t = new Task() {
- @Override
- public void call() throws Exception {
- Server.startWebServer(conn, true);
- }
- };
- t.execute();
- for (int i = 0; lastUrl == oldUrl; i++) {
- if (i > 100) {
- throw new Exception("Browser not started");
- }
- Thread.sleep(100);
- }
- String url = lastUrl;
- WebClient client = new WebClient();
- client.readSessionId(url);
- url = client.getBaseUrl(url);
- try {
- client.get(url, "logout.do");
- } catch (ConnectException e) {
- // the server stops on logout
- }
- t.get();
- conn.close();
- } finally {
- if (old != null) {
- System.setProperty(SysProperties.H2_BROWSER, old);
- } else {
- System.clearProperty(SysProperties.H2_BROWSER);
- }
- }
- }
-
- /**
- * This method is called via reflection.
- *
- * @param url the browser url
- */
- public static void openBrowser(String url) {
- lastUrl = url;
- }
-
- /**
- * A HTTP servlet request for testing.
- */
- static class TestHttpServletRequest implements HttpServletRequest {
-
- private String pathInfo;
-
- void setPathInfo(String pathInfo) {
- this.pathInfo = pathInfo;
- }
-
- @Override
- public Object getAttribute(String name) {
- return null;
- }
-
- @Override
- public Enumeration<String> getAttributeNames() {
- return new Vector<String>().elements();
- }
-
- @Override
- public String getCharacterEncoding() {
- return null;
- }
-
- @Override
- public int getContentLength() {
- return 0;
- }
-
- @Override
- public String getContentType() {
- return null;
- }
-
- @Override
- public ServletInputStream getInputStream() throws IOException {
- return null;
- }
-
- @Override
- public String getLocalAddr() {
- return null;
- }
-
- @Override
- public String getLocalName() {
- return null;
- }
-
- @Override
- public int getLocalPort() {
- return 0;
- }
-
- @Override
- public Locale getLocale() {
- return null;
- }
-
- @Override
- public Enumeration<Locale> getLocales() {
- return null;
- }
-
- @Override
- public String getParameter(String name) {
- return null;
- }
-
- @Override
- public Map<String, String[]> getParameterMap() {
- return null;
- }
-
- @Override
- public Enumeration<String> getParameterNames() {
- return new Vector<String>().elements();
- }
-
- @Override
- public String[] getParameterValues(String name) {
- return null;
- }
-
- @Override
- public String getProtocol() {
- return null;
- }
-
- @Override
- public BufferedReader getReader() throws IOException {
- return null;
- }
-
- @Override
- @Deprecated
- public String getRealPath(String path) {
- return null;
- }
-
- @Override
- public String getRemoteAddr() {
- return null;
- }
-
- @Override
- public String getRemoteHost() {
- return null;
- }
-
- @Override
- public int getRemotePort() {
- return 0;
- }
-
- @Override
- public RequestDispatcher getRequestDispatcher(String name) {
- return null;
- }
-
- @Override
- public String getScheme() {
- return null;
- }
-
- @Override
- public String getServerName() {
- return null;
- }
-
- @Override
- public int getServerPort() {
- return 0;
- }
-
- @Override
- public boolean isSecure() {
- return false;
- }
-
- @Override
- public void removeAttribute(String name) {
- // ignore
- }
-
- @Override
- public void setAttribute(String name, Object value) {
- // ignore
- }
-
- @Override
- public void setCharacterEncoding(String encoding)
- throws UnsupportedEncodingException {
- // ignore
- }
-
- @Override
- public String getAuthType() {
- return null;
- }
-
- @Override
- public String getContextPath() {
- return null;
- }
-
- @Override
- public Cookie[] getCookies() {
- return null;
- }
-
- @Override
- public long getDateHeader(String x) {
- return 0;
- }
-
- @Override
- public String getHeader(String name) {
- return null;
- }
-
- @Override
- public Enumeration<String> getHeaderNames() {
- return null;
- }
-
- @Override
- public Enumeration<String> getHeaders(String name) {
- return null;
- }
-
- @Override
- public int getIntHeader(String name) {
- return 0;
- }
-
- @Override
- public String getMethod() {
- return null;
- }
-
- @Override
- public String getPathInfo() {
- return pathInfo;
- }
-
- @Override
- public String getPathTranslated() {
- return null;
- }
-
- @Override
- public String getQueryString() {
- return null;
- }
-
- @Override
- public String getRemoteUser() {
- return null;
- }
-
- @Override
- public String getRequestURI() {
- return null;
- }
-
- @Override
- public StringBuffer getRequestURL() {
- return null;
- }
-
- @Override
- public String getRequestedSessionId() {
- return null;
- }
-
- @Override
- public String getServletPath() {
- return null;
- }
-
- @Override
- public HttpSession getSession() {
- return null;
- }
-
- @Override
- public HttpSession getSession(boolean x) {
- return null;
- }
-
- @Override
- public Principal getUserPrincipal() {
- return null;
- }
-
- @Override
- public boolean isRequestedSessionIdFromCookie() {
- return false;
- }
-
- @Override
- public boolean isRequestedSessionIdFromURL() {
- return false;
- }
-
- @Override
- @Deprecated
- public boolean isRequestedSessionIdFromUrl() {
- return false;
- }
-
- @Override
- public boolean isRequestedSessionIdValid() {
- return false;
- }
-
- @Override
- public boolean isUserInRole(String x) {
- return false;
- }
-
- @Override
- public java.util.Collection<Part> getParts() {
- return null;
- }
-
- @Override
- public Part getPart(String name) {
- return null;
- }
-
- @Override
- public boolean authenticate(HttpServletResponse response) {
- return false;
- }
-
- @Override
- public void login(String username, String password) {
- // ignore
- }
-
- @Override
- public void logout() {
- // ignore
- }
-
- @Override
- public ServletContext getServletContext() {
- return null;
- }
-
- @Override
- public AsyncContext startAsync() {
- return null;
- }
-
- @Override
- public AsyncContext startAsync(
- ServletRequest servletRequest,
- ServletResponse servletResponse) {
- return null;
- }
-
- @Override
- public boolean isAsyncStarted() {
- return false;
- }
-
- @Override
- public boolean isAsyncSupported() {
- return false;
- }
-
- @Override
- public AsyncContext getAsyncContext() {
- return null;
- }
-
- @Override
- public DispatcherType getDispatcherType() {
- return null;
- }
-
- @Override
- public long getContentLengthLong() {
- return 0;
- }
-
- @Override
- public String changeSessionId() {
- return null;
- }
-
- @Override
- public <T extends HttpUpgradeHandler> T upgrade(Class<T> handlerClass)
- throws IOException, ServletException {
- return null;
- }
-
- }
-
- /**
- * A HTTP servlet response for testing.
- */
- static class TestHttpServletResponse implements HttpServletResponse {
-
- ServletOutputStream servletOutputStream;
-
- void setServletOutputStream(ServletOutputStream servletOutputStream) {
- this.servletOutputStream = servletOutputStream;
- }
-
- @Override
- public void flushBuffer() throws IOException {
- // ignore
- }
-
- @Override
- public int getBufferSize() {
- return 0;
- }
-
- @Override
- public String getCharacterEncoding() {
- return null;
- }
-
- @Override
- public String getContentType() {
- return null;
- }
-
- @Override
- public Locale getLocale() {
- return null;
- }
-
- @Override
- public ServletOutputStream getOutputStream() throws IOException {
- return servletOutputStream;
- }
-
- @Override
- public PrintWriter getWriter() throws IOException {
- return null;
- }
-
- @Override
- public boolean isCommitted() {
- return false;
- }
-
- @Override
- public void reset() {
- // ignore
- }
-
- @Override
- public void resetBuffer() {
- // ignore
- }
-
- @Override
- public void setBufferSize(int arg0) {
- // ignore
- }
-
- @Override
- public void setCharacterEncoding(String arg0) {
- // ignore
- }
-
- @Override
- public void setContentLength(int arg0) {
- // ignore
- }
-
- @Override
- public void setContentLengthLong(long arg0) {
- // ignore
- }
-
- @Override
- public void setContentType(String arg0) {
- // ignore
- }
-
- @Override
- public void setLocale(Locale arg0) {
- // ignore
- }
-
- @Override
- public void addCookie(Cookie arg0) {
- // ignore
- }
-
- @Override
- public void addDateHeader(String arg0, long arg1) {
- // ignore
- }
-
- @Override
- public void addHeader(String arg0, String arg1) {
- // ignore
- }
-
- @Override
- public void addIntHeader(String arg0, int arg1) {
- // ignore
- }
-
- @Override
- public boolean containsHeader(String arg0) {
- return false;
- }
-
- @Override
- public String encodeRedirectURL(String arg0) {
- return null;
- }
-
- @Override
- @Deprecated
- public String encodeRedirectUrl(String arg0) {
- return null;
- }
-
- @Override
- public String encodeURL(String arg0) {
- return null;
- }
-
- @Override
- @Deprecated
- public String encodeUrl(String arg0) {
- return null;
- }
-
- @Override
- public void sendError(int arg0) throws IOException {
- // ignore
- }
-
- @Override
- public void sendError(int arg0, String arg1) throws IOException {
- // ignore
- }
-
- @Override
- public void sendRedirect(String arg0) throws IOException {
- // ignore
- }
-
- @Override
- public void setDateHeader(String arg0, long arg1) {
- // ignore
- }
-
- @Override
- public void setHeader(String arg0, String arg1) {
- // ignore
- }
-
- @Override
- public void setIntHeader(String arg0, int arg1) {
- // ignore
- }
-
- @Override
- public void setStatus(int arg0) {
- // ignore
- }
-
- @Override
- @Deprecated
- public void setStatus(int arg0, String arg1) {
- // ignore
- }
-
- @Override
- public int getStatus() {
- return 0;
- }
-
- @Override
- public String getHeader(String name) {
- return null;
- }
-
- @Override
- public java.util.Collection<String> getHeaders(String name) {
- return null;
- }
-
- @Override
- public java.util.Collection<String> getHeaderNames() {
- return null;
- }
-
- }
-
- /**
- * A servlet output stream for testing.
- */
- static class TestServletOutputStream extends ServletOutputStream {
-
- private final ByteArrayOutputStream buff = new ByteArrayOutputStream();
-
- @Override
- public void write(int b) throws IOException {
- buff.write(b);
- }
-
- @Override
- public String toString() {
- return new String(buff.toByteArray(), StandardCharsets.UTF_8);
- }
-
- @Override
- public boolean isReady() {
- return true;
- }
-
- @Override
- public void setWriteListener(WriteListener writeListener) {
- // ignore
- }
-
- }
-
-}
diff --git a/modules/h2/src/test/java/org/h2/test/server/WebClient.java b/modules/h2/src/test/java/org/h2/test/server/WebClient.java
deleted file mode 100644
index e724b87..0000000
--- a/modules/h2/src/test/java/org/h2/test/server/WebClient.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright 2004-2019 H2 Group. Multiple-Licensed under the MPL 2.0,
- * and the EPL 1.0 (http://h2database.com/html/license.html).
- * Initial Developer: H2 Group
- */
-package org.h2.test.server;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.UUID;
-import org.h2.util.IOUtils;
-
-/**
- * A simple web browser simulator.
- */
-public class WebClient {
-
- private String sessionId;
- private String acceptLanguage;
- private String contentType;
-
- /**
- * Open an URL and get the HTML data.
- *
- * @param url the HTTP URL
- * @return the HTML as a string
- */
- String get(String url) throws IOException {
- HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
- conn.setRequestMethod("GET");
- conn.setInstanceFollowRedirects(true);
- if (acceptLanguage != null) {
- conn.setRequestProperty("accept-language", acceptLanguage);
- }
- conn.connect();
- int code = conn.getResponseCode();
- contentType = conn.getContentType();
- if (code != HttpURLConnection.HTTP_OK) {
- throw new IOException("Result code: " + code);
- }
- InputStream in = conn.getInputStream();
- String result = IOUtils.readStringAndClose(new InputStreamReader(in), -1);
- conn.disconnect();
- return result;
- }
-
- /**
- * Upload a file.
- *
- * @param url the target URL
- * @param fileName the file name to post
- * @param in the input stream
- * @return the result
- */
- String upload(String url, String fileName, InputStream in) throws IOException {
- HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
- conn.setDoOutput(true);
- conn.setDoInput(true);
- conn.setUseCaches(false);
- conn.setRequestMethod("POST");
- conn.setRequestProperty("Connection", "Keep-Alive");
- String boundary = UUID.randomUUID().toString();
- conn.setRequestProperty("Content-Type",
- "multipart/form-data;boundary="+boundary);
- conn.connect();
- DataOutputStream out = new DataOutputStream(conn.getOutputStream());
- out.writeBytes("--" + boundary + "--\r\n");
- out.writeBytes("Content-Disposition: form-data; name=\"upload\";"
- + " filename=\"" + fileName +"\"\r\n\r\n");
- IOUtils.copyAndCloseInput(in, out);
- out.writeBytes("\r\n--" + boundary + "--\r\n");
- out.close();
- int code = conn.getResponseCode();
- if (code != HttpURLConnection.HTTP_OK) {
- throw new IOException("Result code: " + code);
- }
- in = conn.getInputStream();
- String result = IOUtils.readStringAndClose(new InputStreamReader(in), -1);
- conn.disconnect();
- return result;
- }
-
- void setAcceptLanguage(String acceptLanguage) {
- this.acceptLanguage = acceptLanguage;
- }
-
- String getContentType() {
- return contentType;
- }
-
- /**
- * Read the session ID from a URL.
- *
- * @param url the URL
- * @return the session id
- */
- String readSessionId(String url) {
- int idx = url.indexOf("jsessionid=");
- String id = url.substring(idx + "jsessionid=".length());
- for (int i = 0; i < id.length(); i++) {
- char ch = id.charAt(i);
- if (!Character.isLetterOrDigit(ch)) {
- id = id.substring(0, i);
- break;
- }
- }
- this.sessionId = id;
- return id;
- }
-
- /**
- * Read the specified HTML page.
- *
- * @param url the base URL
- * @param page the page to read
- * @return the HTML page
- */
- String get(String url, String page) throws IOException {
- if (sessionId != null) {
- if (page.indexOf('?') < 0) {
- page += "?";
- } else {
- page += "&";
- }
- page += "jsessionid=" + sessionId;
- }
- if (!url.endsWith("/")) {
- url += "/";
- }
- url += page;
- return get(url);
- }
-
- /**
- * Get the base URL (the host name and port).
- *
- * @param url the complete URL
- * @return the host name and port
- */
- String getBaseUrl(String url) {
- int idx = url.indexOf("//");
- idx = url.indexOf('/', idx + 2);
- if (idx >= 0) {
- return url.substring(0, idx);
- }
- return url;
- }
-
-}
diff --git a/modules/h2/src/test/java/org/h2/test/unit/TestPgServer.java b/modules/h2/src/test/java/org/h2/test/unit/TestPgServer.java
deleted file mode 100644
index 824c8e6..0000000
--- a/modules/h2/src/test/java/org/h2/test/unit/TestPgServer.java
+++ /dev/null
@@ -1,578 +0,0 @@
-/*
- * Copyright 2004-2019 H2 Group. Multiple-Licensed under the MPL 2.0,
- * and the EPL 1.0 (http://h2database.com/html/license.html).
- * Initial Developer: H2 Group
- */
-package org.h2.test.unit;
-
-import java.math.BigDecimal;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.Date;
-import java.sql.DriverManager;
-import java.sql.ParameterMetaData;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Time;
-import java.sql.Timestamp;
-import java.sql.Types;
-import java.util.Properties;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import org.h2.api.ErrorCode;
-import org.h2.test.TestBase;
-import org.h2.test.TestDb;
-import org.h2.tools.Server;
-
-/**
- * Tests the PostgreSQL server protocol compliant implementation.
- */
-public class TestPgServer extends TestDb {
-
- /**
- * Run just this test.
- *
- * @param a ignored
- */
- public static void main(String... a) throws Exception {
- TestBase test = TestBase.createCaller().init();
- test.config.memory = true;
- test.test();
- }
-
- @Override
- public boolean isEnabled() {
- if (!config.memory) {
- return false;
- }
- return true;
- }
-
- @Override
- public void test() throws Exception {
- // testPgAdapter() starts server by itself without a wait so run it first
- testPgAdapter();
- testLowerCaseIdentifiers();
- testKeyAlias();
- testKeyAlias();
- testCancelQuery();
- testBinaryTypes();
- testDateTime();
- testPrepareWithUnspecifiedType();
- }
-
- private void testLowerCaseIdentifiers() throws SQLException {
- if (!getPgJdbcDriver()) {
- return;
- }
- deleteDb("pgserver");
- Connection conn = getConnection(
- "mem:pgserver;DATABASE_TO_LOWER=true", "sa", "sa");
- Statement stat = conn.createStatement();
- stat.execute("create table test(id int, name varchar(255))");
- Server server = createPgServer("-baseDir", getBaseDir(),
- "-ifNotExists", "-pgPort", "5535", "-pgDaemon", "-key", "pgserver",
- "mem:pgserver");
- try {
- Connection conn2;
- conn2 = DriverManager.getConnection(
- "jdbc:postgresql://localhost:5535/pgserver", "sa", "sa");
- stat = conn2.createStatement();
- stat.execute("select * from test");
- conn2.close();
- } finally {
- server.stop();
- }
- conn.close();
- deleteDb("pgserver");
- }
-
- private boolean getPgJdbcDriver() {
- try {
- Class.forName("org.postgresql.Driver");
- return true;
- } catch (ClassNotFoundException e) {
- println("PostgreSQL JDBC driver not found - PgServer not tested");
- return false;
- }
- }
-
- private Server createPgServer(String... args) throws SQLException {
- Server server = Server.createPgServer(args);
- int failures = 0;
- for (;;) {
- try {
- server.start();
- return server;
- } catch (SQLException e) {
- // the sleeps are too mitigate "port in use" exceptions on Jenkins
- if (e.getErrorCode() != ErrorCode.EXCEPTION_OPENING_PORT_2 || ++failures > 10) {
- throw e;
- }
- println("Sleeping");
- try {
- Thread.sleep(100);
- } catch (InterruptedException e2) {
- throw new RuntimeException(e2);
- }
- }
- }
- }
-
- private void testPgAdapter() throws SQLException {
- deleteDb("pgserver");
- Server server = Server.createPgServer(
- "-ifNotExists", "-baseDir", getBaseDir(), "-pgPort", "5535", "-pgDaemon");
- assertEquals(5535, server.getPort());
- assertEquals("Not started", server.getStatus());
- server.start();
- assertStartsWith(server.getStatus(), "PG server running at pg://");
- try {
- if (getPgJdbcDriver()) {
- testPgClient();
- }
- } finally {
- server.stop();
- }
- }
-
- private void testCancelQuery() throws Exception {
- if (!getPgJdbcDriver()) {
- return;
- }
-
- Server server = createPgServer(
- "-ifNotExists", "-pgPort", "5535", "-pgDaemon", "-key", "pgserver", "mem:pgserver");
-
- ExecutorService executor = Executors.newSingleThreadExecutor();
- try {
- Connection conn = DriverManager.getConnection(
- "jdbc:postgresql://localhost:5535/pgserver", "sa", "sa");
- final Statement stat = conn.createStatement();
- stat.execute("create alias sleep for \"java.lang.Thread.sleep\"");
-
- // create a table with 200 rows (cancel interval is 127)
- stat.execute("create table test(id int)");
- for (int i = 0; i < 200; i++) {
- stat.execute("insert into test (id) values (rand())");
- }
-
- Future<Boolean> future = executor.submit(new Callable<Boolean>() {
- @Override
- public Boolean call() throws SQLException {
- return stat.execute("select id, sleep(5) from test");
- }
- });
-
- // give it a little time to start and then cancel it
- Thread.sleep(100);
- stat.cancel();
-
- try {
- future.get();
- throw new IllegalStateException();
- } catch (ExecutionException e) {
- assertStartsWith(e.getCause().getMessage(),
- "ERROR: canceling statement due to user request");
- } finally {
- conn.close();
- }
- } finally {
- server.stop();
- executor.shutdown();
- }
- deleteDb("pgserver");
- }
-
- private void testPgClient() throws SQLException {
- Connection conn = DriverManager.getConnection(
- "jdbc:postgresql://localhost:5535/pgserver", "sa", "sa");
- Statement stat = conn.createStatement();
- assertThrows(SQLException.class, stat).
- execute("select ***");
- stat.execute("create user test password 'test'");
- stat.execute("create table test(id int primary key, name varchar)");
- stat.execute("create index idx_test_name on test(name, id)");
- stat.execute("grant all on test to test");
- stat.close();
- conn.close();
-
- conn = DriverManager.getConnection(
- "jdbc:postgresql://localhost:5535/pgserver", "test", "test");
- stat = conn.createStatement();
- ResultSet rs;
-
- stat.execute("prepare test(int, int) as select ?1*?2");
- rs = stat.executeQuery("execute test(3, 2)");
- rs.next();
- assertEquals(6, rs.getInt(1));
- stat.execute("deallocate test");
-
- PreparedStatement prep;
- prep = conn.prepareStatement("select * from test where name = ?");
- prep.setNull(1, Types.VARCHAR);
- rs = prep.executeQuery();
- assertFalse(rs.next());
-
- prep = conn.prepareStatement("insert into test values(?, ?)");
- ParameterMetaData meta = prep.getParameterMetaData();
- assertEquals(2, meta.getParameterCount());
- prep.setInt(1, 1);
- prep.setString(2, "Hello");
- prep.execute();
- rs = stat.executeQuery("select * from test");
- rs.next();
-
- ResultSetMetaData rsMeta = rs.getMetaData();
- assertEquals(Types.INTEGER, rsMeta.getColumnType(1));
- assertEquals(Types.VARCHAR, rsMeta.getColumnType(2));
-
- prep.close();
- assertEquals(1, rs.getInt(1));
- assertEquals("Hello", rs.getString(2));
- assertFalse(rs.next());
- prep = conn.prepareStatement(
- "select * from test " +
- "where id = ? and name = ?");
- prep.setInt(1, 1);
- prep.setString(2, "Hello");
- rs = prep.executeQuery();
- rs.next();
- assertEquals(1, rs.getInt(1));
- assertEquals("Hello", rs.getString(2));
- assertFalse(rs.next());
- rs.close();
- DatabaseMetaData dbMeta = conn.getMetaData();
- rs = dbMeta.getTables(null, null, "TEST", null);
- rs.next();
- assertEquals("TEST", rs.getString("TABLE_NAME"));
- assertFalse(rs.next());
- rs = dbMeta.getColumns(null, null, "TEST", null);
- rs.next();
- assertEquals("ID", rs.getString("COLUMN_NAME"));
- rs.next();
- assertEquals("NAME", rs.getString("COLUMN_NAME"));
- assertFalse(rs.next());
- rs = dbMeta.getIndexInfo(null, null, "TEST", false, false);
- // index info is currently disabled
- // rs.next();
- // assertEquals("TEST", rs.getString("TABLE_NAME"));
- // rs.next();
- // assertEquals("TEST", rs.getString("TABLE_NAME"));
- assertFalse(rs.next());
- rs = stat.executeQuery(
- "select version(), pg_postmaster_start_time(), current_schema()");
- rs.next();
- String s = rs.getString(1);
- assertContains(s, "H2");
- assertContains(s, "PostgreSQL");
- s = rs.getString(2);
- s = rs.getString(3);
- assertEquals(s, "PUBLIC");
- assertFalse(rs.next());
-
- conn.setAutoCommit(false);
- stat.execute("delete from test");
- conn.rollback();
- stat.execute("update test set name = 'Hallo'");
- conn.commit();
- rs = stat.executeQuery("select * from test order by id");
- rs.next();
- assertEquals(1, rs.getInt(1));
- assertEquals("Hallo", rs.getString(2));
- assertFalse(rs.next());
-
- rs = stat.executeQuery("select id, name, pg_get_userbyid(id) " +
- "from information_schema.users order by id");
- rs.next();
- assertEquals(rs.getString(2), rs.getString(3));
- assertFalse(rs.next());
- rs.close();
-
- rs = stat.executeQuery("select currTid2('x', 1)");
- rs.next();
- assertEquals(1, rs.getInt(1));
-
- rs = stat.executeQuery("select has_table_privilege('TEST', 'READ')");
- rs.next();
- assertTrue(rs.getBoolean(1));
-
- rs = stat.executeQuery("select has_database_privilege(1, 'READ')");
- rs.next();
- assertTrue(rs.getBoolean(1));
-
-
- rs = stat.executeQuery("select pg_get_userbyid(-1)");
- rs.next();
- assertEquals(null, rs.getString(1));
-
- rs = stat.executeQuery("select pg_encoding_to_char(0)");
- rs.next();
- assertEquals("SQL_ASCII", rs.getString(1));
-
- rs = stat.executeQuery("select pg_encoding_to_char(6)");
- rs.next();
- assertEquals("UTF8", rs.getString(1));
-
- rs = stat.executeQuery("select pg_encoding_to_char(8)");
- rs.next();
- assertEquals("LATIN1", rs.getString(1));
-
- rs = stat.executeQuery("select pg_encoding_to_char(20)");
- rs.next();
- assertEquals("UTF8", rs.getString(1));
-
- rs = stat.executeQuery("select pg_encoding_to_char(40)");
- rs.next();
- assertEquals("", rs.getString(1));
-
- rs = stat.executeQuery("select pg_get_oid('\"WRONG\"')");
- rs.next();
- assertEquals(0, rs.getInt(1));
-
- rs = stat.executeQuery("select pg_get_oid('TEST')");
- rs.next();
- assertTrue(rs.getInt(1) > 0);
-
- rs = stat.executeQuery("select pg_get_indexdef(0, 0, false)");
- rs.next();
- assertEquals("", rs.getString(1));
-
- rs = stat.executeQuery("select id from information_schema.indexes " +
- "where index_name='IDX_TEST_NAME'");
- rs.next();
- int indexId = rs.getInt(1);
-
- rs = stat.executeQuery("select pg_get_indexdef("+indexId+", 0, false)");
- rs.next();
- assertEquals(
- "CREATE INDEX \"PUBLIC\".\"IDX_TEST_NAME\" ON \"PUBLIC\".\"TEST\"(\"NAME\", \"ID\")",
- rs.getString(1));
- rs = stat.executeQuery("select pg_get_indexdef("+indexId+", null, false)");
- rs.next();
- assertEquals(
- "CREATE INDEX \"PUBLIC\".\"IDX_TEST_NAME\" ON \"PUBLIC\".\"TEST\"(\"NAME\", \"ID\")",
- rs.getString(1));
- rs = stat.executeQuery("select pg_get_indexdef("+indexId+", 1, false)");
- rs.next();
- assertEquals("NAME", rs.getString(1));
- rs = stat.executeQuery("select pg_get_indexdef("+indexId+", 2, false)");
- rs.next();
- assertEquals("ID", rs.getString(1));
-
- conn.close();
- }
-
- private void testKeyAlias() throws SQLException {
- if (!getPgJdbcDriver()) {
- return;
- }
- Server server = createPgServer(
- "-ifNotExists", "-pgPort", "5535", "-pgDaemon", "-key", "pgserver", "mem:pgserver");
- try {
- Connection conn = DriverManager.getConnection(
- "jdbc:postgresql://localhost:5535/pgserver", "sa", "sa");
- Statement stat = conn.createStatement();
-
- // confirm that we've got the in memory implementation
- // by creating a table and checking flags
- stat.execute("create table test(id int primary key, name varchar)");
- ResultSet rs = stat.executeQuery(
- "select storage_type from information_schema.tables " +
- "where table_name = 'TEST'");
- assertTrue(rs.next());
- assertEquals("MEMORY", rs.getString(1));
-
- conn.close();
- } finally {
- server.stop();
- }
- }
-
- private void testBinaryTypes() throws SQLException {
- if (!getPgJdbcDriver()) {
- return;
- }
-
- Server server = createPgServer(
- "-ifNotExists", "-pgPort", "5535", "-pgDaemon", "-key", "pgserver", "mem:pgserver");
- try {
- Properties props = new Properties();
- props.setProperty("user", "sa");
- props.setProperty("password", "sa");
- // force binary
- props.setProperty("prepareThreshold", "-1");
-
- Connection conn = DriverManager.getConnection(
- "jdbc:postgresql://localhost:5535/pgserver", props);
- Statement stat = conn.createStatement();
-
- stat.execute(
- "create table test(x1 varchar, x2 int, " +
- "x3 smallint, x4 bigint, x5 double, x6 float, " +
- "x7 real, x8 boolean, x9 char, x10 bytea, " +
- "x11 date, x12 time, x13 timestamp, x14 numeric)");
-
- PreparedStatement ps = conn.prepareStatement(
- "insert into test values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
- ps.setString(1, "test");
- ps.setInt(2, 12345678);
- ps.setShort(3, (short) 12345);
- ps.setLong(4, 1234567890123L);
- ps.setDouble(5, 123.456);
- ps.setFloat(6, 123.456f);
- ps.setFloat(7, 123.456f);
- ps.setBoolean(8, true);
- ps.setByte(9, (byte) 0xfe);
- ps.setBytes(10, new byte[] { 'a', (byte) 0xfe, '\127' });
- ps.setDate(11, Date.valueOf("2015-01-31"));
- ps.setTime(12, Time.valueOf("20:11:15"));
- ps.setTimestamp(13, Timestamp.valueOf("2001-10-30 14:16:10.111"));
- ps.setBigDecimal(14, new BigDecimal("12345678901234567890.12345"));
- ps.execute();
- for (int i = 1; i <= 14; i++) {
- ps.setNull(i, Types.NULL);
- }
- ps.execute();
-
- ResultSet rs = stat.executeQuery("select * from test");
- assertTrue(rs.next());
- assertEquals("test", rs.getString(1));
- assertEquals(12345678, rs.getInt(2));
- assertEquals((short) 12345, rs.getShort(3));
- assertEquals(1234567890123L, rs.getLong(4));
- assertEquals(123.456, rs.getDouble(5));
- assertEquals(123.456f, rs.getFloat(6));
- assertEquals(123.456f, rs.getFloat(7));
- assertEquals(true, rs.getBoolean(8));
- assertEquals((byte) 0xfe, rs.getByte(9));
- assertEquals(new byte[] { 'a', (byte) 0xfe, '\127' },
- rs.getBytes(10));
- assertEquals(Date.valueOf("2015-01-31"), rs.getDate(11));
- assertEquals(Time.valueOf("20:11:15"), rs.getTime(12));
- assertEquals(Timestamp.valueOf("2001-10-30 14:16:10.111"), rs.getTimestamp(13));
- assertEquals(new BigDecimal("12345678901234567890.12345"), rs.getBigDecimal(14));
- assertTrue(rs.next());
- for (int i = 1; i <= 14; i++) {
- assertNull(rs.getObject(i));
- }
- assertFalse(rs.next());
-
- conn.close();
- } finally {
- server.stop();
- }
- }
-
- private void testDateTime() throws SQLException {
- if (!getPgJdbcDriver()) {
- return;
- }
-
- Server server = createPgServer(
- "-ifNotExists", "-pgPort", "5535", "-pgDaemon", "-key", "pgserver", "mem:pgserver");
- try {
- Properties props = new Properties();
- props.setProperty("user", "sa");
- props.setProperty("password", "sa");
- // force binary
- props.setProperty("prepareThreshold", "-1");
-
- Connection conn = DriverManager.getConnection(
- "jdbc:postgresql://localhost:5535/pgserver", props);
- Statement stat = conn.createStatement();
-
- stat.execute(
- "create table test(x1 date, x2 time, x3 timestamp)");
-
- Date[] dates = { null, Date.valueOf("2017-02-20"),
- Date.valueOf("1970-01-01"), Date.valueOf("1969-12-31"),
- Date.valueOf("1940-01-10"), Date.valueOf("1950-11-10"),
- Date.valueOf("1500-01-01")};
- Time[] times = { null, Time.valueOf("14:15:16"),
- Time.valueOf("00:00:00"), Time.valueOf("23:59:59"),
- Time.valueOf("00:10:59"), Time.valueOf("08:30:42"),
- Time.valueOf("10:00:00")};
- Timestamp[] timestamps = { null, Timestamp.valueOf("2017-02-20 14:15:16.763"),
- Timestamp.valueOf("1970-01-01 00:00:00"), Timestamp.valueOf("1969-12-31 23:59:59"),
- Timestamp.valueOf("1940-01-10 00:10:59"), Timestamp.valueOf("1950-11-10 08:30:42.12"),
- Timestamp.valueOf("1500-01-01 10:00:10")};
- int count = dates.length;
-
- PreparedStatement ps = conn.prepareStatement(
- "insert into test values (?,?,?)");
- for (int i = 0; i < count; i++) {
- ps.setDate(1, dates[i]);
- ps.setTime(2, times[i]);
- ps.setTimestamp(3, timestamps[i]);
- ps.execute();
- }
-
- ResultSet rs = stat.executeQuery("select * from test");
- for (int i = 0; i < count; i++) {
- assertTrue(rs.next());
- assertEquals(dates[i], rs.getDate(1));
- assertEquals(times[i], rs.getTime(2));
- assertEquals(timestamps[i], rs.getTimestamp(3));
- }
- assertFalse(rs.next());
-
- conn.close();
- } finally {
- server.stop();
- }
- }
-
- private void testPrepareWithUnspecifiedType() throws Exception {
- if (!getPgJdbcDriver()) {
- return;
- }
-
- Server server = createPgServer(
- "-ifNotExists", "-pgPort", "5535", "-pgDaemon", "-key", "pgserver", "mem:pgserver");
- try {
- Properties props = new Properties();
-
- props.setProperty("user", "sa");
- props.setProperty("password", "sa");
- // force server side prepare
- props.setProperty("prepareThreshold", "1");
-
- Connection conn = DriverManager.getConnection(
- "jdbc:postgresql://localhost:5535/pgserver", props);
-
- Statement stmt = conn.createStatement();
- stmt.executeUpdate("create table t1 (id integer, value timestamp)");
- stmt.close();
-
- PreparedStatement pstmt = conn.prepareStatement("insert into t1 values(100500, ?)");
- // assertTrue(((PGStatement) pstmt).isUseServerPrepare());
- assertEquals(Types.TIMESTAMP, pstmt.getParameterMetaData().getParameterType(1));
-
- Timestamp t = new Timestamp(System.currentTimeMillis());
- pstmt.setObject(1, t);
- assertEquals(1, pstmt.executeUpdate());
- pstmt.close();
-
- pstmt = conn.prepareStatement("SELECT * FROM t1 WHERE value = ?");
- assertEquals(Types.TIMESTAMP, pstmt.getParameterMetaData().getParameterType(1));
-
- pstmt.setObject(1, t);
- ResultSet rs = pstmt.executeQuery();
- assertTrue(rs.next());
- assertEquals(100500, rs.getInt(1));
- rs.close();
- pstmt.close();
-
- conn.close();
- } finally {
- server.stop();
- }
- }
-}
diff --git a/modules/h2/src/test/java/org/h2/test/unit/TestServlet.java b/modules/h2/src/test/java/org/h2/test/unit/TestServlet.java
deleted file mode 100644
index 7c0f0c2..0000000
--- a/modules/h2/src/test/java/org/h2/test/unit/TestServlet.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/*
- * Copyright 2004-2019 H2 Group. Multiple-Licensed under the MPL 2.0,
- * and the EPL 1.0 (http://h2database.com/html/license.html).
- * Initial Developer: H2 Group
- */
-package org.h2.test.unit;
-
-import java.io.InputStream;
-import java.net.URL;
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Enumeration;
-import java.util.EventListener;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-import javax.servlet.Filter;
-import javax.servlet.FilterRegistration;
-import javax.servlet.FilterRegistration.Dynamic;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-import javax.servlet.SessionCookieConfig;
-import javax.servlet.SessionTrackingMode;
-import javax.servlet.descriptor.JspConfigDescriptor;
-import org.h2.api.ErrorCode;
-import org.h2.server.web.DbStarter;
-import org.h2.test.TestBase;
-import org.h2.test.TestDb;
-
-/**
- * Tests the DbStarter servlet.
- * This test simulates a minimum servlet container environment.
- */
-public class TestServlet extends TestDb {
-
- /**
- * Run just this test.
- *
- * @param a ignored
- */
- public static void main(String... a) throws Exception {
- TestBase.createCaller().init().test();
- }
-
- /**
- * Minimum ServletContext implementation.
- * Most methods are not implemented.
- */
- static class TestServletContext implements ServletContext {
-
- private final Properties initParams = new Properties();
- private final HashMap<String, Object> attributes = new HashMap<>();
-
- @Override
- public void setAttribute(String key, Object value) {
- attributes.put(key, value);
- }
-
- @Override
- public Object getAttribute(String key) {
- return attributes.get(key);
- }
-
- @Override
- public boolean setInitParameter(String key, String value) {
- initParams.setProperty(key, value);
- return true;
- }
-
- @Override
- public String getInitParameter(String key) {
- return initParams.getProperty(key);
- }
-
- @Override
- public Enumeration<String> getAttributeNames() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public ServletContext getContext(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Enumeration<String> getInitParameterNames() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getMajorVersion() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getMimeType(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getMinorVersion() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public RequestDispatcher getNamedDispatcher(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getRealPath(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public RequestDispatcher getRequestDispatcher(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public URL getResource(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public InputStream getResourceAsStream(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Set<String> getResourcePaths(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getServerInfo() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @deprecated as of servlet API 2.1
- */
- @Override
- @Deprecated
- public Servlet getServlet(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getServletContextName() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @deprecated as of servlet API 2.1
- */
- @Deprecated
- @Override
- public Enumeration<String> getServletNames() {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @deprecated as of servlet API 2.0
- */
- @Deprecated
- @Override
- public Enumeration<Servlet> getServlets() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void log(String string) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * @deprecated as of servlet API 2.1
- */
- @Deprecated
- @Override
- public void log(Exception exception, String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void log(String string, Throwable throwable) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void removeAttribute(String string) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Dynamic addFilter(String arg0, String arg1) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Dynamic addFilter(String arg0, Filter arg1) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Dynamic addFilter(String arg0, Class<? extends Filter> arg1) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void addListener(String arg0) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public <T extends EventListener> void addListener(T arg0) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void addListener(Class<? extends EventListener> arg0) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public javax.servlet.ServletRegistration.Dynamic addServlet(
- String arg0, String arg1) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public javax.servlet.ServletRegistration.Dynamic addServlet(
- String arg0, Servlet arg1) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public javax.servlet.ServletRegistration.Dynamic addServlet(
- String arg0, Class<? extends Servlet> arg1) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public <T extends Filter> T createFilter(Class<T> arg0)
- throws ServletException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public <T extends EventListener> T createListener(Class<T> arg0)
- throws ServletException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public <T extends Servlet> T createServlet(Class<T> arg0)
- throws ServletException {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void declareRoles(String... arg0) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public ClassLoader getClassLoader() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getContextPath() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Set<SessionTrackingMode> getDefaultSessionTrackingModes() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getEffectiveMajorVersion() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public int getEffectiveMinorVersion() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Set<SessionTrackingMode> getEffectiveSessionTrackingModes() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public FilterRegistration getFilterRegistration(String arg0) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, ? extends FilterRegistration> getFilterRegistrations() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public JspConfigDescriptor getJspConfigDescriptor() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public ServletRegistration getServletRegistration(String arg0) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, ? extends ServletRegistration> getServletRegistrations() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public SessionCookieConfig getSessionCookieConfig() {
- throw new UnsupportedOperationException();
- }
-
-
- @Override
- public void setSessionTrackingModes(Set<SessionTrackingMode> arg0) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getVirtualServerName() {
- throw new UnsupportedOperationException();
- }
-
- }
-
- @Override
- public boolean isEnabled() {
- if (config.networked || config.memory) {
- return false;
- }
- return true;
- }
-
- @Override
- public void test() throws SQLException {
- DbStarter listener = new DbStarter();
-
- TestServletContext context = new TestServletContext();
- String url = getURL("servlet", true);
- context.setInitParameter("db.url", url);
- context.setInitParameter("db.user", getUser());
- context.setInitParameter("db.password", getPassword());
- context.setInitParameter("db.tcpServer", "-tcpPort 8888");
-
- ServletContextEvent event = new ServletContextEvent(context);
- listener.contextInitialized(event);
-
- Connection conn1 = listener.getConnection();
- Connection conn1a = (Connection) context.getAttribute("connection");
- assertTrue(conn1 == conn1a);
- Statement stat1 = conn1.createStatement();
- stat1.execute("CREATE TABLE T(ID INT)");
-
- String u2 = url.substring(url.indexOf("servlet"));
- u2 = "jdbc:h2:tcp://localhost:8888/" + getBaseDir() + "/" + u2;
- Connection conn2 = DriverManager.getConnection(
- u2, getUser(), getPassword());
- Statement stat2 = conn2.createStatement();
- stat2.execute("SELECT * FROM T");
- stat2.execute("DROP TABLE T");
-
- assertThrows(ErrorCode.TABLE_OR_VIEW_NOT_FOUND_1, stat1).
- execute("SELECT * FROM T");
- conn2.close();
-
- listener.contextDestroyed(event);
-
- // listener must be stopped
- assertThrows(ErrorCode.CONNECTION_BROKEN_1, this).getConnection(
- "jdbc:h2:tcp://localhost:8888/" + getBaseDir() + "/servlet",
- getUser(), getPassword());
-
- // connection must be closed
- assertThrows(ErrorCode.OBJECT_CLOSED, stat1).
- execute("SELECT * FROM DUAL");
-
- deleteDb("servlet");
-
- }
-
-}
diff --git a/modules/h2/src/test/java/org/h2/test/unit/TestTraceSystem.java b/modules/h2/src/test/java/org/h2/test/unit/TestTraceSystem.java
index 36b0223..b8b8250 100644
--- a/modules/h2/src/test/java/org/h2/test/unit/TestTraceSystem.java
+++ b/modules/h2/src/test/java/org/h2/test/unit/TestTraceSystem.java
@@ -38,7 +38,7 @@ public class TestTraceSystem extends TestBase {
ts.setLevelFile(TraceSystem.ADAPTER);
ts.getTrace("test").debug("test");
ts.getTrace("test").info("test");
- ts.getTrace("test").error(new Exception(), "test");
+// ts.getTrace("test").error(new Exception(), "test");
// The used SLF4J-nop logger has all log levels disabled,
// so this should be reflected in the trace system.