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, "&lt;&amp;&gt;");
-            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: &quot;attributes&quot;");
-            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: &quot;superTypes&quot;");
-            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.