This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/main by this push:
     new 3835ab5748 Disable class path scanning generally for unit tests
3835ab5748 is described below

commit 3835ab57486d607d36ae8364c3cb6508378db93f
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Mon Dec 4 21:55:45 2023 +0000

    Disable class path scanning generally for unit tests
---
 .../servlet/TestServletRequestParameters.java      |  2 +-
 ...TestServletRequestParametersFormUrlEncoded.java |  2 +-
 ...stServletRequestParametersMultipartEncoded.java |  2 +-
 .../TestServletRequestParametersQueryString.java   |  2 +-
 .../servlet/annotation/TestServletSecurity.java    |  2 +-
 .../servlet/http/HttpServletDoHeadBaseTest.java    |  2 +-
 test/jakarta/servlet/http/TestHttpServlet.java     | 10 ++--
 .../http/TestHttpServletResponseSendError.java     |  2 +-
 .../TestDigestAuthenticatorAlgorithms.java         |  2 +-
 .../catalina/connector/TestClientReadTimeout.java  |  2 +-
 .../catalina/connector/TestCoyoteAdapter.java      |  6 +--
 .../org/apache/catalina/connector/TestRequest.java |  6 +--
 .../apache/catalina/connector/TestResponse.java    |  6 +--
 .../catalina/core/TestApplicationContext.java      |  2 +-
 .../catalina/core/TestApplicationDispatcher.java   |  2 +-
 .../catalina/core/TestApplicationFilterConfig.java |  2 +-
 .../catalina/core/TestApplicationHttpRequest.java  |  4 +-
 .../apache/catalina/core/TestAsyncContextImpl.java | 58 ++++++++++-----------
 .../core/TestAsyncContextImplDispatch.java         |  2 +-
 .../TestAsyncContextImplListenerOnComplete.java    |  2 +-
 .../core/TestAsyncContextStateChanges.java         |  2 +-
 .../catalina/core/TestNamingContextListener.java   |  4 +-
 .../core/TestPropertiesRoleMappingListener.java    |  2 +-
 .../apache/catalina/core/TestStandardContext.java  |  6 +--
 .../catalina/core/TestStandardContextAliases.java  |  2 +-
 .../catalina/core/TestStandardContextValve.java    |  6 +--
 .../catalina/core/TestStandardHostValve.java       |  8 +--
 .../apache/catalina/core/TestStandardWrapper.java  |  6 +--
 .../catalina/filters/TestAddCharSetFilter.java     |  2 +-
 .../TestWebappClassLoaderExecutorMemoryLeak.java   |  2 +-
 .../loader/TestWebappClassLoaderMemoryLeak.java    |  2 +-
 ...TestWebappClassLoaderThreadLocalMemoryLeak.java |  4 +-
 .../catalina/nonblocking/TestNonBlockingAPI.java   | 20 ++++----
 .../session/TestPersistentManagerIntegration.java  |  6 +--
 .../session/TestStandardSessionIntegration.java    |  2 +-
 test/org/apache/catalina/startup/TestListener.java |  4 +-
 test/org/apache/catalina/startup/TestTomcat.java   | 10 ++--
 .../catalina/startup/TestTomcatClassLoader.java    |  4 +-
 .../apache/catalina/startup/TomcatBaseTest.java    | 10 ++++
 .../apache/catalina/valves/TestAccessLogValve.java |  2 +-
 .../catalina/valves/TestErrorReportValve.java      | 12 ++---
 .../catalina/valves/rewrite/TestRewriteValve.java  |  2 +-
 test/org/apache/coyote/TestResponse.java           |  4 +-
 .../coyote/ajp/TestAbstractAjpProcessor.java       | 16 +++---
 .../coyote/http11/TestHttp11InputBuffer.java       |  2 +-
 .../coyote/http11/TestHttp11OutputBuffer.java      |  4 +-
 .../apache/coyote/http11/TestHttp11Processor.java  | 60 +++++++++++-----------
 .../http11/filters/TestChunkedInputFilter.java     | 12 ++---
 .../apache/coyote/http11/upgrade/TestUpgrade.java  |  2 +-
 .../http11/upgrade/TestUpgradeInternalHandler.java |  2 +-
 test/org/apache/coyote/http2/Http2TestBase.java    |  2 +-
 test/org/apache/coyote/http2/TestAsync.java        |  2 +-
 test/org/apache/coyote/http2/TestAsyncError.java   |  2 +-
 test/org/apache/coyote/http2/TestAsyncFlush.java   |  2 +-
 test/org/apache/coyote/http2/TestAsyncTimeout.java |  2 +-
 .../apache/coyote/http2/TestCancelledUpload.java   |  2 +-
 .../coyote/http2/TestHttp2UpgradeHandler.java      |  6 +--
 test/org/apache/coyote/http2/TestLargeUpload.java  |  2 +-
 test/org/apache/coyote/http2/TestStream.java       |  4 +-
 .../apache/coyote/http2/TestStreamProcessor.java   |  6 +--
 .../apache/coyote/http2/TestStreamQueryString.java |  2 +-
 test/org/apache/naming/TestNamingContext.java      |  2 +-
 .../apache/naming/resources/TestNamingContext.java | 10 ++--
 .../http/TestCookieProcessorGenerationHttp.java    |  2 +-
 .../tomcat/util/net/TestSSLHostConfigCompat.java   |  2 +-
 test/org/apache/tomcat/util/net/TestSsl.java       |  2 +-
 .../tomcat/websocket/TestConnectionLimit.java      |  2 +-
 .../tomcat/websocket/TestWebSocketFrameClient.java |  4 +-
 .../websocket/TestWebSocketFrameClientSSL.java     |  4 +-
 .../tomcat/websocket/TestWsPingPongMessages.java   |  2 +-
 .../tomcat/websocket/TestWsRemoteEndpoint.java     |  4 +-
 .../websocket/TestWsSessionSuspendResume.java      |  2 +-
 .../tomcat/websocket/TestWsSubprotocols.java       |  2 +-
 .../tomcat/websocket/TestWsWebSocketContainer.java | 18 +++----
 .../TestWsWebSocketContainerGetOpenSessions.java   |  2 +-
 .../websocket/TestWsWebSocketContainerSSL.java     |  2 +-
 ...WsWebSocketContainerSessionExpiryContainer.java |  2 +-
 ...stWsWebSocketContainerSessionExpirySession.java |  2 +-
 .../TestWsWebSocketContainerTimeoutClient.java     |  2 +-
 .../TestWsWebSocketContainerTimeoutServer.java     |  2 +-
 .../websocket/TesterWebSocketClientProxy.java      |  2 +-
 .../apache/tomcat/websocket/WebSocketBaseTest.java |  2 +-
 .../websocket/pojo/TestEncodingDecoding.java       | 12 ++---
 .../websocket/pojo/TestPojoEndpointBase.java       |  4 +-
 .../websocket/pojo/TestPojoMethodMapping.java      |  2 +-
 .../tomcat/websocket/server/TestAsyncMessages.java |  2 +-
 .../tomcat/websocket/server/TestClassLoader.java   |  2 +-
 .../tomcat/websocket/server/TestCloseBug58624.java |  2 +-
 .../tomcat/websocket/server/TestShutdown.java      |  2 +-
 .../tomcat/websocket/server/TestSlowClient.java    |  2 +-
 .../server/TestWsRemoteEndpointImplServer.java     |  2 +-
 .../TestWsRemoteEndpointImplServerDeadlock.java    |  2 +-
 .../websocket/server/TestWsServerContainer.java    |  4 +-
 93 files changed, 244 insertions(+), 234 deletions(-)

diff --git a/test/jakarta/servlet/TestServletRequestParameters.java 
b/test/jakarta/servlet/TestServletRequestParameters.java
index 44f4f60955..234db96ca0 100644
--- a/test/jakarta/servlet/TestServletRequestParameters.java
+++ b/test/jakarta/servlet/TestServletRequestParameters.java
@@ -37,7 +37,7 @@ public class TestServletRequestParameters extends 
ServletRequestParametersBaseTe
         
Assert.assertTrue(tomcat.getConnector().setProperty("connectionTimeout", 
"1000"));
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         // Map the test Servlet
         ParameterParsingServlet parameterParsingServlet = new 
ParameterParsingServlet();
diff --git 
a/test/jakarta/servlet/TestServletRequestParametersFormUrlEncoded.java 
b/test/jakarta/servlet/TestServletRequestParametersFormUrlEncoded.java
index 253836df5f..4956e1aea2 100644
--- a/test/jakarta/servlet/TestServletRequestParametersFormUrlEncoded.java
+++ b/test/jakarta/servlet/TestServletRequestParametersFormUrlEncoded.java
@@ -59,7 +59,7 @@ public class TestServletRequestParametersFormUrlEncoded 
extends ServletRequestPa
         tomcat.getConnector().setMaxPostSize(20);
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         // Map the test Servlet
         ParameterParsingServlet parameterParsingServlet = new 
ParameterParsingServlet();
diff --git 
a/test/jakarta/servlet/TestServletRequestParametersMultipartEncoded.java 
b/test/jakarta/servlet/TestServletRequestParametersMultipartEncoded.java
index c6afb1ff70..f364cfc56b 100644
--- a/test/jakarta/servlet/TestServletRequestParametersMultipartEncoded.java
+++ b/test/jakarta/servlet/TestServletRequestParametersMultipartEncoded.java
@@ -59,7 +59,7 @@ public class TestServletRequestParametersMultipartEncoded 
extends ServletRequest
         tomcat.getConnector().setMaxPostSize(50);
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
         ctx.setAllowCasualMultipartParsing(true);
 
         // Map the test Servlet
diff --git a/test/jakarta/servlet/TestServletRequestParametersQueryString.java 
b/test/jakarta/servlet/TestServletRequestParametersQueryString.java
index 2d19041c56..ff7357b442 100644
--- a/test/jakarta/servlet/TestServletRequestParametersQueryString.java
+++ b/test/jakarta/servlet/TestServletRequestParametersQueryString.java
@@ -83,7 +83,7 @@ public class TestServletRequestParametersQueryString extends 
ServletRequestParam
         tomcat.getConnector().setMaxParameterCount(3);
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         // Map the test Servlet
         ParameterParsingServlet parameterParsingServlet = new 
ParameterParsingServlet();
diff --git a/test/jakarta/servlet/annotation/TestServletSecurity.java 
b/test/jakarta/servlet/annotation/TestServletSecurity.java
index a195fb115e..4782922ec6 100644
--- a/test/jakarta/servlet/annotation/TestServletSecurity.java
+++ b/test/jakarta/servlet/annotation/TestServletSecurity.java
@@ -50,7 +50,7 @@ public class TestServletSecurity extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "Foo", Foo.class.getName());
         ctx.addServletMappingDecoded("/foo/*", "Foo");
diff --git a/test/jakarta/servlet/http/HttpServletDoHeadBaseTest.java 
b/test/jakarta/servlet/http/HttpServletDoHeadBaseTest.java
index 8dea5e7f84..32d2ccf6c4 100644
--- a/test/jakarta/servlet/http/HttpServletDoHeadBaseTest.java
+++ b/test/jakarta/servlet/http/HttpServletDoHeadBaseTest.java
@@ -197,7 +197,7 @@ public class HttpServletDoHeadBaseTest extends 
Http2TestBase {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        StandardContext ctxt = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctxt = (StandardContext) getProgrammaticRootContext();
 
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
diff --git a/test/jakarta/servlet/http/TestHttpServlet.java 
b/test/jakarta/servlet/http/TestHttpServlet.java
index 6c3f91b42c..f895b23f09 100644
--- a/test/jakarta/servlet/http/TestHttpServlet.java
+++ b/test/jakarta/servlet/http/TestHttpServlet.java
@@ -54,7 +54,7 @@ public class TestHttpServlet extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         // Map the test Servlet
         LargeBodyServlet largeBodyServlet = new LargeBodyServlet();
@@ -94,7 +94,7 @@ public class TestHttpServlet extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         Bug57602ServletOuter outer = new Bug57602ServletOuter();
         Tomcat.addServlet(ctx, "Bug57602ServletOuter", outer);
@@ -166,7 +166,7 @@ public class TestHttpServlet extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         Wrapper w = Tomcat.addServlet(ctx, "TestServlet", servlet);
         // Not all need/use this but it is simpler to set it for all
@@ -236,7 +236,7 @@ public class TestHttpServlet extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         // Map the test Servlet
         Tomcat.addServlet(ctx, "servlet", servlet);
@@ -317,7 +317,7 @@ public class TestHttpServlet extends TomcatBaseTest {
         tomcat.getConnector().setAllowTrace(true);
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         // Map the test Servlet
         Tomcat.addServlet(ctx, "servlet", new SimpleServlet());
diff --git a/test/jakarta/servlet/http/TestHttpServletResponseSendError.java 
b/test/jakarta/servlet/http/TestHttpServletResponseSendError.java
index bc1cc0a3f6..1b777d108f 100644
--- a/test/jakarta/servlet/http/TestHttpServletResponseSendError.java
+++ b/test/jakarta/servlet/http/TestHttpServletResponseSendError.java
@@ -130,7 +130,7 @@ public class TestHttpServletResponseSendError extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         if (async) {
             Wrapper w = Tomcat.addServlet(ctx, "target",
diff --git 
a/test/org/apache/catalina/authenticator/TestDigestAuthenticatorAlgorithms.java 
b/test/org/apache/catalina/authenticator/TestDigestAuthenticatorAlgorithms.java
index 5f7defbe18..85345523d4 100644
--- 
a/test/org/apache/catalina/authenticator/TestDigestAuthenticatorAlgorithms.java
+++ 
b/test/org/apache/catalina/authenticator/TestDigestAuthenticatorAlgorithms.java
@@ -126,7 +126,7 @@ public class TestDigestAuthenticatorAlgorithms extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
 
         // Add protected servlet
         Tomcat.addServlet(ctxt, "TesterServlet", new TesterServlet());
diff --git a/test/org/apache/catalina/connector/TestClientReadTimeout.java 
b/test/org/apache/catalina/connector/TestClientReadTimeout.java
index 1219ce1fdf..c2d00f521f 100644
--- a/test/org/apache/catalina/connector/TestClientReadTimeout.java
+++ b/test/org/apache/catalina/connector/TestClientReadTimeout.java
@@ -49,7 +49,7 @@ public class TestClientReadTimeout extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         ((StandardHost) tomcat.getHost()).setErrorReportValveClass(null);
 
diff --git a/test/org/apache/catalina/connector/TestCoyoteAdapter.java 
b/test/org/apache/catalina/connector/TestCoyoteAdapter.java
index 1dbe21bc21..0aa87ea0ec 100644
--- a/test/org/apache/catalina/connector/TestCoyoteAdapter.java
+++ b/test/org/apache/catalina/connector/TestCoyoteAdapter.java
@@ -133,7 +133,7 @@ public class TestCoyoteAdapter extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new PathParamServlet());
         ctx.addServletMappingDecoded("/", "servlet");
@@ -236,7 +236,7 @@ public class TestCoyoteAdapter extends TomcatBaseTest {
         tomcat.getConnector().setURIEncoding(encoding);
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         PathInfoServlet servlet = new PathInfoServlet();
         Tomcat.addServlet(ctx, "servlet", servlet);
@@ -284,7 +284,7 @@ public class TestCoyoteAdapter extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         AsyncServlet servlet = new AsyncServlet();
         Wrapper w = Tomcat.addServlet(ctx, "async", servlet);
diff --git a/test/org/apache/catalina/connector/TestRequest.java 
b/test/org/apache/catalina/connector/TestRequest.java
index 5371b9654a..413d35f7e9 100644
--- a/test/org/apache/catalina/connector/TestRequest.java
+++ b/test/org/apache/catalina/connector/TestRequest.java
@@ -234,7 +234,7 @@ public class TestRequest extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add the Servlet
         Tomcat.addServlet(ctx, "servlet", new EchoQueryStringServlet());
@@ -278,7 +278,7 @@ public class TestRequest extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         LoginConfig config = new LoginConfig();
         config.setAuthMethod("BASIC");
@@ -902,7 +902,7 @@ public class TestRequest extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new Bug61264GetReaderServlet());
         ctx.addServletMappingDecoded("/", "servlet");
diff --git a/test/org/apache/catalina/connector/TestResponse.java 
b/test/org/apache/catalina/connector/TestResponse.java
index 574a3b8582..a33a78bd82 100644
--- a/test/org/apache/catalina/connector/TestResponse.java
+++ b/test/org/apache/catalina/connector/TestResponse.java
@@ -52,7 +52,7 @@ public class TestResponse extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new Bug49598Servlet());
         ctx.addServletMappingDecoded("/", "servlet");
@@ -108,7 +108,7 @@ public class TestResponse extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new CharsetServlet());
         ctx.addServletMappingDecoded("/", "servlet");
@@ -147,7 +147,7 @@ public class TestResponse extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new Bug52811Servlet());
         ctx.addServletMappingDecoded("/", "servlet");
diff --git a/test/org/apache/catalina/core/TestApplicationContext.java 
b/test/org/apache/catalina/core/TestApplicationContext.java
index 79349328e7..2a328145d4 100644
--- a/test/org/apache/catalina/core/TestApplicationContext.java
+++ b/test/org/apache/catalina/core/TestApplicationContext.java
@@ -184,7 +184,7 @@ public class TestApplicationContext extends TomcatBaseTest {
         Context bar = tomcat.addContext("/bar", null);
         bar.addLifecycleListener(new SetIdListener("bar"));
 
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addLifecycleListener(new SetIdListener("ROOT"));
         ctx.setCrossContext(true);
 
diff --git a/test/org/apache/catalina/core/TestApplicationDispatcher.java 
b/test/org/apache/catalina/core/TestApplicationDispatcher.java
index 12e838c7a9..8720bc3e70 100644
--- a/test/org/apache/catalina/core/TestApplicationDispatcher.java
+++ b/test/org/apache/catalina/core/TestApplicationDispatcher.java
@@ -43,7 +43,7 @@ public class TestApplicationDispatcher extends TomcatBaseTest 
{
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "errorTrigger", new ErrorTriggerServlet());
         ctx.addServletMappingDecoded("/trigger", "errorTrigger");
diff --git a/test/org/apache/catalina/core/TestApplicationFilterConfig.java 
b/test/org/apache/catalina/core/TestApplicationFilterConfig.java
index 1d5be4d28f..18d31916ea 100644
--- a/test/org/apache/catalina/core/TestApplicationFilterConfig.java
+++ b/test/org/apache/catalina/core/TestApplicationFilterConfig.java
@@ -38,7 +38,7 @@ public class TestApplicationFilterConfig extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "HelloWorld", new HelloWorldServlet());
         ctx.addServletMappingDecoded("/", "HelloWorld");
diff --git a/test/org/apache/catalina/core/TestApplicationHttpRequest.java 
b/test/org/apache/catalina/core/TestApplicationHttpRequest.java
index e8ba854e98..a233a8ef42 100644
--- a/test/org/apache/catalina/core/TestApplicationHttpRequest.java
+++ b/test/org/apache/catalina/core/TestApplicationHttpRequest.java
@@ -182,7 +182,7 @@ public class TestApplicationHttpRequest extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         if (forwardQueryString == null) {
             Tomcat.addServlet(ctx, "forward", new ForwardServlet("/display"));
@@ -216,7 +216,7 @@ public class TestApplicationHttpRequest extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "forward", new ForwardServlet("/modify"));
         ctx.addServletMappingDecoded("/forward", "forward");
diff --git a/test/org/apache/catalina/core/TestAsyncContextImpl.java 
b/test/org/apache/catalina/core/TestAsyncContextImpl.java
index 2cbbddc262..db6289e79f 100644
--- a/test/org/apache/catalina/core/TestAsyncContextImpl.java
+++ b/test/org/apache/catalina/core/TestAsyncContextImpl.java
@@ -99,7 +99,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Bug49528Servlet servlet = new Bug49528Servlet();
 
@@ -136,7 +136,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Bug49567Servlet servlet = new Bug49567Servlet();
 
@@ -177,7 +177,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("connectionTimeout", 
"3000"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         AsyncStartNoCompleteServlet servlet =
             new AsyncStartNoCompleteServlet();
@@ -216,7 +216,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         AsyncStartWithCompleteServlet servlet =
             new AsyncStartWithCompleteServlet();
@@ -499,7 +499,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         TimeoutServlet timeout = new TimeoutServlet(completeOnTimeout, 
dispatchUrl);
 
@@ -667,7 +667,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         DispatchingServlet dispatch = new DispatchingServlet(false, false);
         Wrapper wrapper = Tomcat.addServlet(ctx, "dispatch", dispatch);
@@ -794,7 +794,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         TrackingServlet tracking = new TrackingServlet();
         Wrapper wrapper = Tomcat.addServlet(ctx, "tracking", tracking);
@@ -1036,7 +1036,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         DispatchingServlet dispatch =
             new DispatchingServlet(true, completeOnError);
@@ -1116,7 +1116,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         AsyncStartRunnable servlet = new AsyncStartRunnable();
         Wrapper wrapper = Tomcat.addServlet(ctx, "servlet", servlet);
@@ -1183,7 +1183,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Bug50753Servlet servlet = new Bug50753Servlet();
 
@@ -1246,7 +1246,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         ErrorServlet error = new ErrorServlet();
         Tomcat.addServlet(ctx, "error", error);
@@ -1280,7 +1280,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         AsyncStatusServlet asyncStatusServlet =
             new AsyncStatusServlet(HttpServletResponse.SC_BAD_REQUEST);
@@ -1358,7 +1358,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         AsyncErrorServlet asyncErrorServlet =
             new AsyncErrorServlet(HttpServletResponse.SC_BAD_REQUEST, 
threaded);
@@ -1475,7 +1475,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Wrapper a = Tomcat.addServlet(ctx, "ServletA", new Bug53337ServletA());
         a.setAsyncSupported(true);
@@ -1555,7 +1555,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Bug53843ServletA servletA = new Bug53843ServletA();
         Wrapper a = Tomcat.addServlet(ctx, "ServletA", servletA);
@@ -1668,7 +1668,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         TimeoutServlet timeout = new TimeoutServlet(null, null);
         Wrapper w1 = Tomcat.addServlet(ctx, "time", timeout);
@@ -1797,7 +1797,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Bug54178ServletA bug54178ServletA = new Bug54178ServletA();
         Wrapper wrapper =
@@ -1910,7 +1910,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         resetTracker();
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         Bug59219Servlet bug59219Servlet = new Bug59219Servlet();
         Wrapper w = tomcat.addServlet("", "async", bug59219Servlet);
         w.setAsyncSupported(true);
@@ -1972,7 +1972,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         NonAsyncServlet nonAsyncServlet = new NonAsyncServlet();
         Wrapper wrapper = Tomcat.addServlet(ctx, "nonAsyncServlet",
@@ -2062,7 +2062,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         AsyncISEServlet servlet = new AsyncISEServlet();
 
@@ -2242,7 +2242,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Servlet stage1 = new DispatchingServletTracking("/stage2", true);
         Wrapper wrapper1 = Tomcat.addServlet(ctx, "stage1", stage1);
@@ -2315,7 +2315,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Servlet servlet = new AsyncRequestUriServlet();
         Wrapper wrapper1 = Tomcat.addServlet(ctx, "bug57559", servlet);
@@ -2354,7 +2354,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         NonAsyncServlet nonAsyncServlet = new NonAsyncServlet();
         Tomcat.addServlet(ctx, "nonAsyncServlet", nonAsyncServlet);
@@ -2456,7 +2456,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
     @Test
     public void testTimeoutDispatchCustomErrorPage() throws Exception {
         Tomcat tomcat = getTomcatInstance();
-        Context context = tomcat.addContext("", null);
+        Context context = getProgrammaticRootContext();
         tomcat.addServlet("", "timeout", Bug58751AsyncServlet.class.getName())
                 .setAsyncSupported(true);
         CustomErrorServlet customErrorServlet = new CustomErrorServlet();
@@ -2580,7 +2580,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
 
     private void doTestDispatchWithSpaces(boolean async) throws Exception {
         Tomcat tomcat = getTomcatInstance();
-        Context context = tomcat.addContext("", null);
+        Context context = getProgrammaticRootContext();
         if (async) {
             Servlet s = new AsyncDispatchUrlWithSpacesServlet();
             Wrapper w = Tomcat.addServlet(context, "space", s);
@@ -2680,7 +2680,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         
tomcat.getConnector().setEncodedSolidusHandling(EncodedSolidusHandling.DECODE.getValue());
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         EncodedDispatchServlet encodedDispatchServlet = new 
EncodedDispatchServlet();
         Wrapper wrapper = Tomcat.addServlet(ctx, "encodedDispatchServlet", 
encodedDispatchServlet);
@@ -2750,7 +2750,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
             Tomcat tomcat = getTomcatInstance();
 
             // No file system docBase required
-            Context ctx = tomcat.addContext("", null);
+            Context ctx = getProgrammaticRootContext();
 
             AsyncIoEndServlet asyncIoEndServlet = new 
AsyncIoEndServlet(useThread, useComplete);
             Wrapper wrapper = Tomcat.addServlet(ctx, "asyncIoEndServlet", 
asyncIoEndServlet);
@@ -2913,7 +2913,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Bug63816Servlet bug63816Servlet = new Bug63816Servlet(doGetLatch, 
clientCloseLatch, threadCompleteLatch, ise);
         Wrapper wrapper = Tomcat.addServlet(ctx, "bug63816Servlet", 
bug63816Servlet);
@@ -3082,7 +3082,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         PostServlet postServlet = new PostServlet(partialReadLatch, 
clientCloseLatch, threadCompleteLatch, testFailed);
         Wrapper wrapper = Tomcat.addServlet(ctx, "postServlet", postServlet);
diff --git a/test/org/apache/catalina/core/TestAsyncContextImplDispatch.java 
b/test/org/apache/catalina/core/TestAsyncContextImplDispatch.java
index 5c1cf13a6d..db65c8b71b 100644
--- a/test/org/apache/catalina/core/TestAsyncContextImplDispatch.java
+++ b/test/org/apache/catalina/core/TestAsyncContextImplDispatch.java
@@ -82,7 +82,7 @@ public class TestAsyncContextImplDispatch extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Wrapper w1 = Tomcat.addServlet(ctx, "target", new TesterServlet());
         w1.setAsyncSupported(targetAsyncSupported);
diff --git 
a/test/org/apache/catalina/core/TestAsyncContextImplListenerOnComplete.java 
b/test/org/apache/catalina/core/TestAsyncContextImplListenerOnComplete.java
index 1234e6dea0..23b6d6518a 100644
--- a/test/org/apache/catalina/core/TestAsyncContextImplListenerOnComplete.java
+++ b/test/org/apache/catalina/core/TestAsyncContextImplListenerOnComplete.java
@@ -52,7 +52,7 @@ public class TestAsyncContextImplListenerOnComplete extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Latch to track that complete has been called
         CountDownLatch completeLatch = new CountDownLatch(1);
diff --git a/test/org/apache/catalina/core/TestAsyncContextStateChanges.java 
b/test/org/apache/catalina/core/TestAsyncContextStateChanges.java
index 4ea0a7d02a..0d8c7dc8a5 100644
--- a/test/org/apache/catalina/core/TestAsyncContextStateChanges.java
+++ b/test/org/apache/catalina/core/TestAsyncContextStateChanges.java
@@ -99,7 +99,7 @@ public class TestAsyncContextStateChanges extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         AsyncServlet bug63816Servlet = new AsyncServlet();
         Wrapper wrapper = Tomcat.addServlet(ctx, "bug63816Servlet", 
bug63816Servlet);
diff --git a/test/org/apache/catalina/core/TestNamingContextListener.java 
b/test/org/apache/catalina/core/TestNamingContextListener.java
index 38933a60c4..25ba844383 100644
--- a/test/org/apache/catalina/core/TestNamingContextListener.java
+++ b/test/org/apache/catalina/core/TestNamingContextListener.java
@@ -49,7 +49,7 @@ public class TestNamingContextListener extends TomcatBaseTest 
{
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Enable JNDI - it is disabled by default
         tomcat.enableNaming();
@@ -91,7 +91,7 @@ public class TestNamingContextListener extends TomcatBaseTest 
{
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Enable JNDI - it is disabled by default
         tomcat.enableNaming();
diff --git 
a/test/org/apache/catalina/core/TestPropertiesRoleMappingListener.java 
b/test/org/apache/catalina/core/TestPropertiesRoleMappingListener.java
index 2d6ea7468f..d37e750482 100644
--- a/test/org/apache/catalina/core/TestPropertiesRoleMappingListener.java
+++ b/test/org/apache/catalina/core/TestPropertiesRoleMappingListener.java
@@ -61,7 +61,7 @@ public class TestPropertiesRoleMappingListener extends 
TomcatBaseTest {
     public void testNotFoundRoleMappingFile() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         PropertiesRoleMappingListener listener = new 
PropertiesRoleMappingListener();
         ctx.addLifecycleListener(listener);
diff --git a/test/org/apache/catalina/core/TestStandardContext.java 
b/test/org/apache/catalina/core/TestStandardContext.java
index b35a5ad22f..9070963476 100644
--- a/test/org/apache/catalina/core/TestStandardContext.java
+++ b/test/org/apache/catalina/core/TestStandardContext.java
@@ -404,7 +404,7 @@ public class TestStandardContext extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Setup realm
         TesterMapRealm realm = new TesterMapRealm();
@@ -473,7 +473,7 @@ public class TestStandardContext extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         ctx.setDenyUncoveredHttpMethods(enableDeny);
 
@@ -554,7 +554,7 @@ public class TestStandardContext extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add ServletContainerInitializer
         Bug51376SCI sci = new Bug51376SCI(loadOnStartUp);
diff --git a/test/org/apache/catalina/core/TestStandardContextAliases.java 
b/test/org/apache/catalina/core/TestStandardContextAliases.java
index 91b00affe8..e22ccfa291 100644
--- a/test/org/apache/catalina/core/TestStandardContextAliases.java
+++ b/test/org/apache/catalina/core/TestStandardContextAliases.java
@@ -44,7 +44,7 @@ public class TestStandardContextAliases extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         File lib = new File("webapps/examples/WEB-INF/lib");
         ctx.setResources(new StandardRoot(ctx));
diff --git a/test/org/apache/catalina/core/TestStandardContextValve.java 
b/test/org/apache/catalina/core/TestStandardContextValve.java
index bec8d6b8e1..2057c05858 100644
--- a/test/org/apache/catalina/core/TestStandardContextValve.java
+++ b/test/org/apache/catalina/core/TestStandardContextValve.java
@@ -47,7 +47,7 @@ public class TestStandardContextValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Traces order of events across multiple components
         StringBuilder trace = new StringBuilder();
@@ -94,7 +94,7 @@ public class TestStandardContextValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Traces order of events across multiple components
         StringBuilder trace = new StringBuilder();
@@ -234,7 +234,7 @@ public class TestStandardContextValve extends 
TomcatBaseTest {
         final Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        final Context ctx = tomcat.addContext("", null);
+        final Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "echo", new EchoBodyServlet());
         ctx.addServletMappingDecoded("/echo", "echo");
diff --git a/test/org/apache/catalina/core/TestStandardHostValve.java 
b/test/org/apache/catalina/core/TestStandardHostValve.java
index db4b7ccc09..6433d0e1e1 100644
--- a/test/org/apache/catalina/core/TestStandardHostValve.java
+++ b/test/org/apache/catalina/core/TestStandardHostValve.java
@@ -71,7 +71,7 @@ public class TestStandardHostValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add the error page
         Tomcat.addServlet(ctx, "error", new ErrorServlet());
@@ -116,7 +116,7 @@ public class TestStandardHostValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add a broken error page configuration
         ErrorPage errorPage500 = new ErrorPage();
@@ -132,7 +132,7 @@ public class TestStandardHostValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add the error page
         Tomcat.addServlet(ctx, "error", new ErrorServlet());
@@ -174,7 +174,7 @@ public class TestStandardHostValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add the error page
         Tomcat.addServlet(ctx, "error", new ExceptionServlet());
diff --git a/test/org/apache/catalina/core/TestStandardWrapper.java 
b/test/org/apache/catalina/core/TestStandardWrapper.java
index 89f11fdce1..7338529e14 100644
--- a/test/org/apache/catalina/core/TestStandardWrapper.java
+++ b/test/org/apache/catalina/core/TestStandardWrapper.java
@@ -253,7 +253,7 @@ public class TestStandardWrapper extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addRoleMapping("testRole", "very-complex-role-name");
 
         Wrapper wrapper = Tomcat.addServlet(ctx, "servlet", 
RoleAllowServlet.class.getName());
@@ -321,7 +321,7 @@ public class TestStandardWrapper extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Servlet s = new DenyAllServlet();
         ServletContainerInitializer sci = new SCI(s, useCreateServlet);
@@ -350,7 +350,7 @@ public class TestStandardWrapper extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         ctx.setDenyUncoveredHttpMethods(denyUncovered);
 
diff --git a/test/org/apache/catalina/filters/TestAddCharSetFilter.java 
b/test/org/apache/catalina/filters/TestAddCharSetFilter.java
index cb8788658f..f6623579aa 100644
--- a/test/org/apache/catalina/filters/TestAddCharSetFilter.java
+++ b/test/org/apache/catalina/filters/TestAddCharSetFilter.java
@@ -93,7 +93,7 @@ public class TestAddCharSetFilter extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add the Servlet
         CharsetServlet servlet = new CharsetServlet(mode, useSetContentType);
diff --git 
a/test/org/apache/catalina/loader/TestWebappClassLoaderExecutorMemoryLeak.java 
b/test/org/apache/catalina/loader/TestWebappClassLoaderExecutorMemoryLeak.java
index 805a126c6d..fc01786686 100644
--- 
a/test/org/apache/catalina/loader/TestWebappClassLoaderExecutorMemoryLeak.java
+++ 
b/test/org/apache/catalina/loader/TestWebappClassLoaderExecutorMemoryLeak.java
@@ -41,7 +41,7 @@ public class TestWebappClassLoaderExecutorMemoryLeak extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         if (ctx instanceof StandardContext) {
             ((StandardContext) ctx).setClearReferencesStopThreads(true);
diff --git 
a/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java 
b/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java
index 61ca67ad04..e9ccbd4356 100644
--- a/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java
+++ b/test/org/apache/catalina/loader/TestWebappClassLoaderMemoryLeak.java
@@ -40,7 +40,7 @@ public class TestWebappClassLoaderMemoryLeak extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         if (ctx instanceof StandardContext) {
             ((StandardContext) ctx).setClearReferencesStopTimerThreads(true);
diff --git 
a/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
 
b/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
index f5d87d102d..e28e25f08e 100644
--- 
a/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
+++ 
b/test/org/apache/catalina/loader/TestWebappClassLoaderThreadLocalMemoryLeak.java
@@ -61,7 +61,7 @@ public class TestWebappClassLoaderThreadLocalMemoryLeak 
extends TomcatBaseTest {
                 new JreMemoryLeakPreventionListener());
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "leakServlet1",
                 "org.apache.tomcat.unittest.TesterLeakingServlet1");
@@ -116,7 +116,7 @@ public class TestWebappClassLoaderThreadLocalMemoryLeak 
extends TomcatBaseTest {
                 new JreMemoryLeakPreventionListener());
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "leakServlet2",
                 "org.apache.tomcat.unittest.TesterLeakingServlet2");
diff --git a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java 
b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java
index 60a96ea57c..6d2e202031 100644
--- a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java
+++ b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java
@@ -130,7 +130,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         NBReadServlet servlet = new NBReadServlet(ignoreIsReady, async);
         String servletName = NBReadServlet.class.getName();
@@ -170,7 +170,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         NBWriteServlet servlet = new NBWriteServlet(asyncContextIsComplete);
         String servletName = NBWriteServlet.class.getName();
@@ -350,7 +350,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         TesterAccessLogValve alv = new TesterAccessLogValve();
         ctx.getPipeline().addValve(alv);
@@ -446,7 +446,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         NBReadWriteServlet servlet = new NBReadWriteServlet();
         String servletName = NBReadWriteServlet.class.getName();
@@ -952,7 +952,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
     public void testDelayedNBWrite() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         CountDownLatch latch1 = new CountDownLatch(1);
         DelayedNBWriteServlet servlet = new DelayedNBWriteServlet(latch1);
         String servletName = DelayedNBWriteServlet.class.getName();
@@ -985,7 +985,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
     public void testDelayedNBReadWrite() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         CountDownLatch latch1 = new CountDownLatch(2);
         DelayedNBReadWriteServlet servlet = new 
DelayedNBReadWriteServlet(latch1);
         String servletName = DelayedNBReadWriteServlet.class.getName();
@@ -1243,7 +1243,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         NBReadWithDispatchServlet servlet = new NBReadWithDispatchServlet();
         String servletName = NBReadWithDispatchServlet.class.getName();
@@ -1371,7 +1371,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         PostServlet postServlet = new PostServlet(partialReadLatch, 
completeLatch, testFailed);
         Wrapper wrapper = Tomcat.addServlet(ctx, "postServlet", postServlet);
@@ -1549,7 +1549,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         NBWriteServlet02 writeServlet =
                 new NBWriteServlet02(responseCommitLatch, clientCloseLatch, 
asyncCompleteLatch, swallowIoException);
@@ -1716,7 +1716,7 @@ public class TestNonBlockingAPI extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("socket.txBufSize", 
"524228"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         TesterAccessLogValve alv = new TesterAccessLogValve();
         ctx.getPipeline().addValve(alv);
diff --git 
a/test/org/apache/catalina/session/TestPersistentManagerIntegration.java 
b/test/org/apache/catalina/session/TestPersistentManagerIntegration.java
index f4bb66f78a..bd4fac340e 100644
--- a/test/org/apache/catalina/session/TestPersistentManagerIntegration.java
+++ b/test/org/apache/catalina/session/TestPersistentManagerIntegration.java
@@ -74,7 +74,7 @@ public class TestPersistentManagerIntegration extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
         ctx.setDistributable(true);
 
         Tomcat.addServlet(ctx, "DummyServlet", new DummyServlet());
@@ -107,7 +107,7 @@ public class TestPersistentManagerIntegration extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
         ctx.setDistributable(true);
 
         Tomcat.addServlet(ctx, "DummyServlet", new DummyServlet());
@@ -140,7 +140,7 @@ public class TestPersistentManagerIntegration extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.setDistributable(true);
 
         Tomcat.addServlet(ctx, "DummyServlet", new DummyServlet());
diff --git 
a/test/org/apache/catalina/session/TestStandardSessionIntegration.java 
b/test/org/apache/catalina/session/TestStandardSessionIntegration.java
index 81d5f5605f..1e83e78e63 100644
--- a/test/org/apache/catalina/session/TestStandardSessionIntegration.java
+++ b/test/org/apache/catalina/session/TestStandardSessionIntegration.java
@@ -56,7 +56,7 @@ public class TestStandardSessionIntegration extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "bug56578", new Bug56578Servlet());
         ctx.addServletMappingDecoded("/bug56578", "bug56578");
diff --git a/test/org/apache/catalina/startup/TestListener.java 
b/test/org/apache/catalina/startup/TestListener.java
index c31acc19ae..5c2c04944a 100644
--- a/test/org/apache/catalina/startup/TestListener.java
+++ b/test/org/apache/catalina/startup/TestListener.java
@@ -41,7 +41,7 @@ public class TestListener extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context context = tomcat.addContext("", null);
+        Context context = getProgrammaticRootContext();
 
         context.addServletContainerInitializer(new SCI(), null);
         tomcat.start();
@@ -58,7 +58,7 @@ public class TestListener extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context context = tomcat.addContext("", null);
+        Context context = getProgrammaticRootContext();
 
         // SCL2 pretends to be in web.xml, and tries to install a
         // ServletContainerInitializer.
diff --git a/test/org/apache/catalina/startup/TestTomcat.java 
b/test/org/apache/catalina/startup/TestTomcat.java
index 184726203d..2e079ac9fb 100644
--- a/test/org/apache/catalina/startup/TestTomcat.java
+++ b/test/org/apache/catalina/startup/TestTomcat.java
@@ -191,7 +191,7 @@ public class TestTomcat extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "myServlet", new HelloWorld());
         ctx.addServletMappingDecoded("/", "myServlet");
@@ -242,7 +242,7 @@ public class TestTomcat extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "myServlet", new HelloWorldSession());
         ctx.addServletMappingDecoded("/", "myServlet");
@@ -272,7 +272,7 @@ public class TestTomcat extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Enable JNDI - it is disabled by default
         tomcat.enableNaming();
@@ -300,7 +300,7 @@ public class TestTomcat extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Enable JNDI - it is disabled by default
         tomcat.enableNaming();
@@ -379,7 +379,7 @@ public class TestTomcat extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         InitCount initCount = new InitCount();
         Tomcat.addServlet(ctx, "initCount", initCount);
diff --git a/test/org/apache/catalina/startup/TestTomcatClassLoader.java 
b/test/org/apache/catalina/startup/TestTomcatClassLoader.java
index 59cdbee4e6..6c1b0b4744 100644
--- a/test/org/apache/catalina/startup/TestTomcatClassLoader.java
+++ b/test/org/apache/catalina/startup/TestTomcatClassLoader.java
@@ -40,7 +40,7 @@ public class TestTomcatClassLoader extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "ClassLoaderReport", new 
ClassLoaderReport(null));
         ctx.addServletMappingDecoded("/", "ClassLoaderReport");
@@ -62,7 +62,7 @@ public class TestTomcatClassLoader extends TomcatBaseTest {
         tomcat.getServer().setParentClassLoader(cl);
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "ClassLoaderReport", new ClassLoaderReport(cl));
         ctx.addServletMappingDecoded("/", "ClassLoaderReport");
diff --git a/test/org/apache/catalina/startup/TomcatBaseTest.java 
b/test/org/apache/catalina/startup/TomcatBaseTest.java
index ae2b0b618e..aa57202011 100644
--- a/test/org/apache/catalina/startup/TomcatBaseTest.java
+++ b/test/org/apache/catalina/startup/TomcatBaseTest.java
@@ -137,6 +137,16 @@ public abstract class TomcatBaseTest extends 
LoggingBaseTest {
         return tomcat;
     }
 
+
+    public Context getProgrammaticRootContext() {
+        // No file system docBase required
+        Context ctx = tomcat.addContext("", null);
+        // Disable class path scanning - it slows the tests down by almost an 
order of magnitude
+        ((StandardJarScanner) ctx.getJarScanner()).setScanClassPath(false);
+        return ctx;
+    }
+
+
     /*
      * Sub-classes need to know port so they can connect
      */
diff --git a/test/org/apache/catalina/valves/TestAccessLogValve.java 
b/test/org/apache/catalina/valves/TestAccessLogValve.java
index 813737cc9a..74d207bed8 100644
--- a/test/org/apache/catalina/valves/TestAccessLogValve.java
+++ b/test/org/apache/catalina/valves/TestAccessLogValve.java
@@ -274,7 +274,7 @@ public class TestAccessLogValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         // Map the test Servlet
         TesterServlet servlet = new TesterServlet();
diff --git a/test/org/apache/catalina/valves/TestErrorReportValve.java 
b/test/org/apache/catalina/valves/TestErrorReportValve.java
index 762159dbf0..d4bdee420f 100644
--- a/test/org/apache/catalina/valves/TestErrorReportValve.java
+++ b/test/org/apache/catalina/valves/TestErrorReportValve.java
@@ -48,7 +48,7 @@ public class TestErrorReportValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "errorServlet", new ErrorServlet());
         ctx.addServletMappingDecoded("/", "errorServlet");
@@ -81,7 +81,7 @@ public class TestErrorReportValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "bug54220", new Bug54220Servlet(false));
         ctx.addServletMappingDecoded("/", "bug54220");
@@ -101,7 +101,7 @@ public class TestErrorReportValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "bug54220", new Bug54220Servlet(true));
         ctx.addServletMappingDecoded("/", "bug54220");
@@ -144,7 +144,7 @@ public class TestErrorReportValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "bug54536", new Bug54536Servlet());
         ctx.addServletMappingDecoded("/", "bug54536");
@@ -179,7 +179,7 @@ public class TestErrorReportValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Bug56042Servlet bug56042Servlet = new Bug56042Servlet();
         Wrapper wrapper = Tomcat.addServlet(ctx, "bug56042Servlet", 
bug56042Servlet);
@@ -242,7 +242,7 @@ public class TestErrorReportValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "exception", new ExceptionServlet());
         ctx.addServletMappingDecoded("/exception", "exception");
diff --git a/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java 
b/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
index dfe27cbdf9..8702891ac3 100644
--- a/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
+++ b/test/org/apache/catalina/valves/rewrite/TestRewriteValve.java
@@ -734,7 +734,7 @@ public class TestRewriteValve extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         RewriteValve rewriteValve = new RewriteValve();
         ctx.getPipeline().addValve(rewriteValve);
diff --git a/test/org/apache/coyote/TestResponse.java 
b/test/org/apache/coyote/TestResponse.java
index 77661db108..b88737f1d6 100644
--- a/test/org/apache/coyote/TestResponse.java
+++ b/test/org/apache/coyote/TestResponse.java
@@ -44,7 +44,7 @@ public class TestResponse extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add  servlet
         Tomcat.addServlet(ctx, "CharsetServlet", new CharsetServlet());
@@ -95,7 +95,7 @@ public class TestResponse extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add  servlet
         Tomcat.addServlet(ctx, "ContentTypeServlet", new ContentTypeServlet());
diff --git a/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java 
b/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
index 22b0466e6f..f76deae16f 100644
--- a/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
+++ b/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
@@ -90,7 +90,7 @@ public class TestAbstractAjpProcessor extends TomcatBaseTest {
         Assert.assertTrue(tomcat.getConnector().setProperty("packetSize", 
Integer.toString(ajpPacketSize)));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "snoop", new SnoopServlet());
         ctx.addServletMappingDecoded("/", "snoop");
@@ -507,7 +507,7 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
         tomcat.start();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "helloWorld", new HelloWorldServlet());
         ctx.addServletMappingDecoded("/", "helloWorld");
@@ -571,7 +571,7 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
         tomcat.start();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "helloWorld", new HelloWorldServlet());
         ctx.addServletMappingDecoded("/", "helloWorld");
@@ -678,7 +678,7 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "bug55453", new Tester304WithBodyServlet());
         ctx.addServletMappingDecoded("/", "bug55453");
@@ -732,7 +732,7 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         ReadBodyServlet servlet = new ReadBodyServlet(callAvailable);
         Tomcat.addServlet(ctx, "ReadBody", servlet);
@@ -787,7 +787,7 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
         Assert.assertTrue(tomcat.getConnector().setProperty("packetSize", 
Integer.toString(ajpPacketSize)));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         FixedResponseSizeServlet servlet = new FixedResponseSizeServlet(15000, 
16000);
         Tomcat.addServlet(ctx, "FixedResponseSizeServlet", servlet);
@@ -829,7 +829,7 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "bug66512", new InvalidHeaderServlet());
         ctx.addServletMappingDecoded("/", "bug66512");
@@ -892,7 +892,7 @@ public class TestAbstractAjpProcessor extends 
TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "bug66591", new NoHeadersServlet());
         ctx.addServletMappingDecoded("/", "bug66591");
diff --git a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java 
b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
index 178b307f54..a0595163aa 100644
--- a/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
+++ b/test/org/apache/coyote/http11/TestHttp11InputBuffer.java
@@ -677,7 +677,7 @@ public class TestHttp11InputBuffer extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
diff --git a/test/org/apache/coyote/http11/TestHttp11OutputBuffer.java 
b/test/org/apache/coyote/http11/TestHttp11OutputBuffer.java
index d092051e83..00a4664d75 100644
--- a/test/org/apache/coyote/http11/TestHttp11OutputBuffer.java
+++ b/test/org/apache/coyote/http11/TestHttp11OutputBuffer.java
@@ -42,7 +42,7 @@ public class TestHttp11OutputBuffer extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "echo", new EchoBodyServlet());
         ctx.addServletMappingDecoded("/echo", "echo");
@@ -90,7 +90,7 @@ public class TestHttp11OutputBuffer extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "header", new HeaderServlet(customHeaderValue));
         ctx.addServletMappingDecoded("/header", "header");
diff --git a/test/org/apache/coyote/http11/TestHttp11Processor.java 
b/test/org/apache/coyote/http11/TestHttp11Processor.java
index d2f07f7fc0..9f23f64737 100644
--- a/test/org/apache/coyote/http11/TestHttp11Processor.java
+++ b/test/org/apache/coyote/http11/TestHttp11Processor.java
@@ -74,7 +74,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add protected servlet
         Tomcat.addServlet(ctx, "ChunkedResponseWithErrorServlet", new 
ResponseWithErrorServlet(true));
@@ -270,7 +270,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add protected servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -325,7 +325,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add protected servlet
         Wrapper w = Tomcat.addServlet(ctx, "servlet", new Bug64974Servlet());
@@ -364,7 +364,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "NoContentLengthFlushingServlet", new 
NoContentLengthFlushingServlet());
         ctx.addServletMappingDecoded("/test", 
"NoContentLengthFlushingServlet");
@@ -387,7 +387,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "NoContentLengthConnectionCloseFlushingServlet",
                 new NoContentLengthConnectionCloseFlushingServlet());
@@ -423,7 +423,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "LargeHeaderServlet", new 
LargeHeaderServlet(flush));
         ctx.addServletMappingDecoded("/test", "LargeHeaderServlet");
@@ -456,7 +456,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Assert.assertTrue(tomcat.getConnector().setProperty("maxThreads", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "async", new Bug55772Servlet());
         ctx.addServletMappingDecoded("/*", "async");
@@ -519,7 +519,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "echo", new EchoBodyServlet());
         ctx.addServletMappingDecoded("/echo", "echo");
@@ -688,7 +688,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
 
     private void doTestBug57621(boolean delayAsyncThread) throws Exception {
         Tomcat tomcat = getTomcatInstance();
-        Context root = tomcat.addContext("", null);
+        Context root = getProgrammaticRootContext();
         Wrapper w = Tomcat.addServlet(root, "Bug57621", new 
Bug57621Servlet(delayAsyncThread));
         w.setAsyncSupported(true);
         root.addServletMappingDecoded("/test", "Bug57621");
@@ -794,7 +794,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "Bug59310", new Bug59310Servlet());
         ctx.addServletMappingDecoded("/test", "Bug59310");
@@ -845,7 +845,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         DispatchingServlet servlet = new DispatchingServlet();
         Wrapper w = Tomcat.addServlet(ctx, "Test", servlet);
@@ -934,7 +934,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Bug61086Servlet servlet = new Bug61086Servlet();
         Tomcat.addServlet(ctx, "Test", servlet);
@@ -974,7 +974,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1007,7 +1007,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1037,7 +1037,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1066,7 +1066,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1096,7 +1096,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1126,7 +1126,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1159,7 +1159,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1192,7 +1192,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1225,7 +1225,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet());
@@ -1259,7 +1259,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new ServerNameTesterServlet());
@@ -1294,7 +1294,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new ServerNameTesterServlet());
@@ -1330,7 +1330,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new ServerNameTesterServlet());
@@ -1366,7 +1366,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new ServerNameTesterServlet());
@@ -1402,7 +1402,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         
Assert.assertTrue(tomcat.getConnector().setProperty("maxKeepAliveRequests", 
"1"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new ServerNameTesterServlet());
@@ -1494,7 +1494,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         tomcat.getConnector().setProperty("maxKeepAliveRequests", 
Integer.toString(maxKeepAliveRequests));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new 
TesterServlet(explicitClose));
@@ -1611,7 +1611,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         }
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new 
SwallowBodyTesterServlet());
@@ -1766,7 +1766,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TesterServlet", new TesterServlet(false));
@@ -1821,7 +1821,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
         connector.setProperty("continueResponseTiming", "onRead");
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Add servlet
         Tomcat.addServlet(ctx, "TestPostNoReadServlet", new 
TestPostNoReadServlet());
diff --git a/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java 
b/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java
index 3454d8d010..dae08a8a4c 100644
--- a/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java
+++ b/test/org/apache/coyote/http11/filters/TestChunkedInputFilter.java
@@ -97,7 +97,7 @@ public class TestChunkedInputFilter extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         // Configure allowed trailer headers
         
Assert.assertTrue(tomcat.getConnector().setProperty("allowedTrailerHeaders", 
"x-trailer1,x-trailer2"));
@@ -163,7 +163,7 @@ public class TestChunkedInputFilter extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new EchoHeaderServlet(false));
         ctx.addServletMappingDecoded("/", "servlet");
@@ -226,7 +226,7 @@ public class TestChunkedInputFilter extends TomcatBaseTest {
                 "maxExtensionSize", Integer.toString(EXT_SIZE_LIMIT)));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new EchoHeaderServlet(ok));
         ctx.addServletMappingDecoded("/", "servlet");
@@ -274,7 +274,7 @@ public class TestChunkedInputFilter extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new EchoHeaderServlet(true));
         ctx.addServletMappingDecoded("/", "servlet");
@@ -373,7 +373,7 @@ public class TestChunkedInputFilter extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         BodyReadServlet servlet = new BodyReadServlet(expectPass, readLimit);
         Tomcat.addServlet(ctx, "servlet", servlet);
@@ -445,7 +445,7 @@ public class TestChunkedInputFilter extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         Tomcat.addServlet(ctx, "servlet", new 
SwallowBodyServlet(swallowException));
         ctx.addServletMappingDecoded("/", "servlet");
diff --git a/test/org/apache/coyote/http11/upgrade/TestUpgrade.java 
b/test/org/apache/coyote/http11/upgrade/TestUpgrade.java
index 23f1673857..fb0c57caea 100644
--- a/test/org/apache/coyote/http11/upgrade/TestUpgrade.java
+++ b/test/org/apache/coyote/http11/upgrade/TestUpgrade.java
@@ -166,7 +166,7 @@ public class TestUpgrade extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         UpgradeServlet servlet = new UpgradeServlet(upgradeHandlerClass);
         Tomcat.addServlet(ctx, "servlet", servlet);
diff --git 
a/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java 
b/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java
index 3335a89111..fbb1b2cef1 100644
--- a/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java
+++ b/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java
@@ -86,7 +86,7 @@ public class TestUpgradeInternalHandler extends 
TomcatBaseTest {
         Assert.assertTrue(tomcat.getConnector().setProperty("useAsyncIO", 
"true"));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
 
         UpgradeServlet servlet = new UpgradeServlet(upgradeHandlerClass);
         Tomcat.addServlet(ctx, "servlet", servlet);
diff --git a/test/org/apache/coyote/http2/Http2TestBase.java 
b/test/org/apache/coyote/http2/Http2TestBase.java
index 2a432363cb..c95c62e8cb 100644
--- a/test/org/apache/coyote/http2/Http2TestBase.java
+++ b/test/org/apache/coyote/http2/Http2TestBase.java
@@ -647,7 +647,7 @@ public abstract class Http2TestBase extends TomcatBaseTest {
     protected void configureAndStartWebApplication() throws LifecycleException 
{
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "empty", new EmptyServlet());
         ctxt.addServletMappingDecoded("/empty", "empty");
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
diff --git a/test/org/apache/coyote/http2/TestAsync.java 
b/test/org/apache/coyote/http2/TestAsync.java
index afd4e1cb0f..f15cc22731 100644
--- a/test/org/apache/coyote/http2/TestAsync.java
+++ b/test/org/apache/coyote/http2/TestAsync.java
@@ -105,7 +105,7 @@ public class TestAsync extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Wrapper w = Tomcat.addServlet(ctxt, "async", new 
AsyncServlet(blockCount, useNonContainerThreadForWrite));
diff --git a/test/org/apache/coyote/http2/TestAsyncError.java 
b/test/org/apache/coyote/http2/TestAsyncError.java
index 912a26ebd0..acfbecbebf 100644
--- a/test/org/apache/coyote/http2/TestAsyncError.java
+++ b/test/org/apache/coyote/http2/TestAsyncError.java
@@ -50,7 +50,7 @@ public class TestAsyncError extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Wrapper w = Tomcat.addServlet(ctxt, "async", new AsyncErrorServlet());
diff --git a/test/org/apache/coyote/http2/TestAsyncFlush.java 
b/test/org/apache/coyote/http2/TestAsyncFlush.java
index 26db69beba..a99d0fbb57 100644
--- a/test/org/apache/coyote/http2/TestAsyncFlush.java
+++ b/test/org/apache/coyote/http2/TestAsyncFlush.java
@@ -62,7 +62,7 @@ public class TestAsyncFlush extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Wrapper w = Tomcat.addServlet(ctxt, "async", new 
AsyncFlushServlet(blockCount));
diff --git a/test/org/apache/coyote/http2/TestAsyncTimeout.java 
b/test/org/apache/coyote/http2/TestAsyncTimeout.java
index 4d80bb47d3..8f0a457f17 100644
--- a/test/org/apache/coyote/http2/TestAsyncTimeout.java
+++ b/test/org/apache/coyote/http2/TestAsyncTimeout.java
@@ -45,7 +45,7 @@ public class TestAsyncTimeout extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         // This is the target of the HTTP/2 upgrade request
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
diff --git a/test/org/apache/coyote/http2/TestCancelledUpload.java 
b/test/org/apache/coyote/http2/TestCancelledUpload.java
index e49ea23e29..75ceeb96cd 100644
--- a/test/org/apache/coyote/http2/TestCancelledUpload.java
+++ b/test/org/apache/coyote/http2/TestCancelledUpload.java
@@ -139,7 +139,7 @@ public class TestCancelledUpload extends Http2TestBase {
         Tomcat tomcat = getTomcatInstance();
 
         // Retain '/simple' url-pattern since it enables code re-use
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "cancel", new CancelServlet());
         ctxt.addServletMappingDecoded("/simple", "cancel");
 
diff --git a/test/org/apache/coyote/http2/TestHttp2UpgradeHandler.java 
b/test/org/apache/coyote/http2/TestHttp2UpgradeHandler.java
index 6f4e91a926..5fb1505965 100644
--- a/test/org/apache/coyote/http2/TestHttp2UpgradeHandler.java
+++ b/test/org/apache/coyote/http2/TestHttp2UpgradeHandler.java
@@ -34,7 +34,7 @@ public class TestHttp2UpgradeHandler extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Tomcat.addServlet(ctxt, "large", new LargeHeaderServlet());
@@ -118,7 +118,7 @@ public class TestHttp2UpgradeHandler extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "ReadRequestBodyServlet", new 
ReadRequestBodyServlet());
         ctxt.addServletMappingDecoded("/", "ReadRequestBodyServlet");
 
@@ -176,7 +176,7 @@ public class TestHttp2UpgradeHandler extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
 
diff --git a/test/org/apache/coyote/http2/TestLargeUpload.java 
b/test/org/apache/coyote/http2/TestLargeUpload.java
index 02da50e4bb..47b6ecb257 100644
--- a/test/org/apache/coyote/http2/TestLargeUpload.java
+++ b/test/org/apache/coyote/http2/TestLargeUpload.java
@@ -120,7 +120,7 @@ public class TestLargeUpload extends Http2TestBase {
         Tomcat tomcat = getTomcatInstance();
 
         // Retain '/simple' url-pattern since it enables code re-use
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "read", new DataReadServlet());
         ctxt.addServletMappingDecoded("/simple", "read");
 
diff --git a/test/org/apache/coyote/http2/TestStream.java 
b/test/org/apache/coyote/http2/TestStream.java
index 83dc31479f..9ca9a926b7 100644
--- a/test/org/apache/coyote/http2/TestStream.java
+++ b/test/org/apache/coyote/http2/TestStream.java
@@ -45,7 +45,7 @@ public class TestStream extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Tomcat.addServlet(ctxt, "pathparam", new PathParam());
@@ -79,7 +79,7 @@ public class TestStream extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Tomcat.addServlet(ctxt, "trailers", new ResponseTrailers());
diff --git a/test/org/apache/coyote/http2/TestStreamProcessor.java 
b/test/org/apache/coyote/http2/TestStreamProcessor.java
index 4231fd3f3f..ac362c6e30 100644
--- a/test/org/apache/coyote/http2/TestStreamProcessor.java
+++ b/test/org/apache/coyote/http2/TestStreamProcessor.java
@@ -50,7 +50,7 @@ public class TestStreamProcessor extends Http2TestBase {
 
         // Map the async servlet to /simple so we can re-use the HTTP/2 
handling
         // logic from the super class.
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Wrapper w = Tomcat.addServlet(ctxt, "async", new AsyncComplete());
@@ -89,7 +89,7 @@ public class TestStreamProcessor extends Http2TestBase {
 
         // Map the async servlet to /simple so we can re-use the HTTP/2 
handling
         // logic from the super class.
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Wrapper w = Tomcat.addServlet(ctxt, "async", new AsyncDispatch());
@@ -499,7 +499,7 @@ public class TestStreamProcessor extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "simple", new SimpleServlet());
         ctxt.addServletMappingDecoded("/simple", "simple");
         Tomcat.addServlet(ctxt, "compression", new CompressionServlet());
diff --git a/test/org/apache/coyote/http2/TestStreamQueryString.java 
b/test/org/apache/coyote/http2/TestStreamQueryString.java
index e8f19207b7..90a2d4d199 100644
--- a/test/org/apache/coyote/http2/TestStreamQueryString.java
+++ b/test/org/apache/coyote/http2/TestStreamQueryString.java
@@ -74,7 +74,7 @@ public class TestStreamQueryString extends Http2TestBase {
 
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "query", new Query(queryValue));
         ctxt.addServletMappingDecoded("/query", "query");
 
diff --git a/test/org/apache/naming/TestNamingContext.java 
b/test/org/apache/naming/TestNamingContext.java
index 845d833f11..25ea465c1c 100644
--- a/test/org/apache/naming/TestNamingContext.java
+++ b/test/org/apache/naming/TestNamingContext.java
@@ -41,7 +41,7 @@ public class TestNamingContext extends TomcatBaseTest {
         Tomcat tomcat = getTomcatInstance();
         tomcat.enableNaming();
 
-        org.apache.catalina.Context ctx = tomcat.addContext("", null);
+        org.apache.catalina.Context ctx = getProgrammaticRootContext();
 
         tomcat.start();
 
diff --git a/test/org/apache/naming/resources/TestNamingContext.java 
b/test/org/apache/naming/resources/TestNamingContext.java
index b6ff6221a7..87c968306c 100644
--- a/test/org/apache/naming/resources/TestNamingContext.java
+++ b/test/org/apache/naming/resources/TestNamingContext.java
@@ -59,7 +59,7 @@ public class TestNamingContext extends TomcatBaseTest {
         tomcat.enableNaming();
 
         // No file system docBase required
-        org.apache.catalina.Context ctx = tomcat.addContext("", null);
+        org.apache.catalina.Context ctx = getProgrammaticRootContext();
 
         // Create the resource
         ContextResource cr = new ContextResource();
@@ -120,7 +120,7 @@ public class TestNamingContext extends TomcatBaseTest {
         tomcat.enableNaming();
 
         // No file system docBase required
-        org.apache.catalina.Context ctx = tomcat.addContext("", null);
+        org.apache.catalina.Context ctx = getProgrammaticRootContext();
 
         // Create the resource
         ContextResource cr = new ContextResource();
@@ -171,7 +171,7 @@ public class TestNamingContext extends TomcatBaseTest {
         tomcat.enableNaming();
 
         // No file system docBase required
-        org.apache.catalina.Context ctx = tomcat.addContext("", null);
+        org.apache.catalina.Context ctx = getProgrammaticRootContext();
 
         // Create the resource
         ContextResource cr = new ContextResource();
@@ -230,7 +230,7 @@ public class TestNamingContext extends TomcatBaseTest {
         tomcat.enableNaming();
 
         // No file system docBase required
-        StandardContext ctx = (StandardContext) tomcat.addContext("", null);
+        StandardContext ctx = (StandardContext) getProgrammaticRootContext();
 
         ctx.setJndiExceptionOnFailedWrite(exceptionOnFailedWrite);
 
@@ -288,7 +288,7 @@ public class TestNamingContext extends TomcatBaseTest {
         tomcat.enableNaming();
 
         // No file system docBase required
-        org.apache.catalina.Context ctx = tomcat.addContext("", null);
+        org.apache.catalina.Context ctx = getProgrammaticRootContext();
 
         // Create the resource
         ContextEnvironment env = new ContextEnvironment();
diff --git 
a/test/org/apache/tomcat/util/http/TestCookieProcessorGenerationHttp.java 
b/test/org/apache/tomcat/util/http/TestCookieProcessorGenerationHttp.java
index 1663a901d2..468d051c23 100644
--- a/test/org/apache/tomcat/util/http/TestCookieProcessorGenerationHttp.java
+++ b/test/org/apache/tomcat/util/http/TestCookieProcessorGenerationHttp.java
@@ -42,7 +42,7 @@ public class TestCookieProcessorGenerationHttp extends 
TomcatBaseTest {
     public void testUtf8CookieValue() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.setCookieProcessor(new Rfc6265CookieProcessor());
         Tomcat.addServlet(ctx, "test", new CookieServlet("\u0120"));
         ctx.addServletMappingDecoded("/test", "test");
diff --git a/test/org/apache/tomcat/util/net/TestSSLHostConfigCompat.java 
b/test/org/apache/tomcat/util/net/TestSSLHostConfigCompat.java
index 0a1f5736d4..9059406507 100644
--- a/test/org/apache/tomcat/util/net/TestSSLHostConfigCompat.java
+++ b/test/org/apache/tomcat/util/net/TestSSLHostConfigCompat.java
@@ -316,7 +316,7 @@ public class TestSSLHostConfigCompat extends TomcatBaseTest 
{
         TesterSupport.configureSSLImplementation(tomcat, 
sslImplementationName, needApr);
 
         // Simple webapp
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "TesterServlet", new TesterServlet());
         ctxt.addServletMappingDecoded("/*", "TesterServlet");
     }
diff --git a/test/org/apache/tomcat/util/net/TestSsl.java 
b/test/org/apache/tomcat/util/net/TestSsl.java
index 85c4fa7c98..4c77460ccd 100644
--- a/test/org/apache/tomcat/util/net/TestSsl.java
+++ b/test/org/apache/tomcat/util/net/TestSsl.java
@@ -129,7 +129,7 @@ public class TestSsl extends TomcatBaseTest {
         Assert.assertTrue(connector.setProperty("connectionTimeout", "20000"));
         TesterSupport.configureSSLImplementation(tomcat, 
sslImplementationName, needApr);
 
-        Context ctxt = tomcat.addContext("", null);
+        Context ctxt = getProgrammaticRootContext();
         Tomcat.addServlet(ctxt, "post", new SimplePostServlet());
         ctxt.addServletMappingDecoded("/post", "post");
         tomcat.start();
diff --git a/test/org/apache/tomcat/websocket/TestConnectionLimit.java 
b/test/org/apache/tomcat/websocket/TestConnectionLimit.java
index 2408f1a3e5..463ee95b01 100644
--- a/test/org/apache/tomcat/websocket/TestConnectionLimit.java
+++ b/test/org/apache/tomcat/websocket/TestConnectionLimit.java
@@ -44,7 +44,7 @@ public class TestConnectionLimit extends TomcatBaseTest {
     public void testSingleMachine() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java 
b/test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java
index fe20795af7..1d7caea3ed 100644
--- a/test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java
+++ b/test/org/apache/tomcat/websocket/TestWebSocketFrameClient.java
@@ -54,7 +54,7 @@ public class TestWebSocketFrameClient extends 
WebSocketBaseTest {
     public void testConnectToServerEndpoint() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         
ctx.addApplicationListener(TesterFirehoseServer.ConfigInline.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -98,7 +98,7 @@ public class TestWebSocketFrameClient extends 
WebSocketBaseTest {
     public void testConnectToRootEndpoint() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java 
b/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
index 341ff97c8c..b8b661bed7 100644
--- a/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
+++ b/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
@@ -80,7 +80,7 @@ public class TestWebSocketFrameClientSSL extends 
WebSocketBaseTest {
     public void testConnectToServerEndpoint() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         
ctx.addApplicationListener(TesterFirehoseServer.ConfigInline.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -128,7 +128,7 @@ public class TestWebSocketFrameClientSSL extends 
WebSocketBaseTest {
     public void testBug56032() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         
ctx.addApplicationListener(TesterFirehoseServer.ConfigInline.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/TestWsPingPongMessages.java 
b/test/org/apache/tomcat/websocket/TestWsPingPongMessages.java
index ac29d367f2..ef907969ee 100644
--- a/test/org/apache/tomcat/websocket/TestWsPingPongMessages.java
+++ b/test/org/apache/tomcat/websocket/TestWsPingPongMessages.java
@@ -46,7 +46,7 @@ public class TestWsPingPongMessages extends WebSocketBaseTest 
{
     public void testPingPongMessages() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
 
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
diff --git a/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java 
b/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java
index 5aaa95bdbe..67001bdcd6 100644
--- a/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java
+++ b/test/org/apache/tomcat/websocket/TestWsRemoteEndpoint.java
@@ -92,7 +92,7 @@ public class TestWsRemoteEndpoint extends WebSocketBaseTest {
     private void doTestWriter(Class<?> clazz, boolean useWriter, String 
testMessage) throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -199,7 +199,7 @@ public class TestWsRemoteEndpoint extends WebSocketBaseTest 
{
     private void doTestWriterError(Class<?> clazz) throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/TestWsSessionSuspendResume.java 
b/test/org/apache/tomcat/websocket/TestWsSessionSuspendResume.java
index 73b0472586..0a853d83c7 100644
--- a/test/org/apache/tomcat/websocket/TestWsSessionSuspendResume.java
+++ b/test/org/apache/tomcat/websocket/TestWsSessionSuspendResume.java
@@ -47,7 +47,7 @@ public class TestWsSessionSuspendResume extends 
WebSocketBaseTest {
     public void test() throws Exception {
         Tomcat tomcat = getTomcatInstance();
 
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Config.class.getName());
 
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
diff --git a/test/org/apache/tomcat/websocket/TestWsSubprotocols.java 
b/test/org/apache/tomcat/websocket/TestWsSubprotocols.java
index ecf54cc2b8..2c413a5a12 100644
--- a/test/org/apache/tomcat/websocket/TestWsSubprotocols.java
+++ b/test/org/apache/tomcat/websocket/TestWsSubprotocols.java
@@ -45,7 +45,7 @@ public class TestWsSubprotocols extends WebSocketBaseTest {
     public void testWsSubprotocols() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Config.class.getName());
 
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
diff --git a/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
index 4d97af7b22..871bcaded2 100644
--- a/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
+++ b/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
@@ -75,7 +75,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
     public void testConnectToServerEndpoint() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -110,7 +110,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
     public void testConnectToServerEndpointInvalidScheme() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
 
         tomcat.start();
@@ -125,7 +125,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
     public void testConnectToServerEndpointNoHost() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
 
         tomcat.start();
@@ -189,7 +189,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -363,7 +363,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
     public void testGetOpenSessions() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -413,7 +413,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
     public void testSessionExpiryOnUserPropertyReadIdleTimeout() throws 
Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -453,7 +453,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
     public void testSessionExpiryOnUserPropertyWriteIdleTimeout() throws 
Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -551,7 +551,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -633,7 +633,7 @@ public class TestWsWebSocketContainer extends 
WsWebSocketContainerBaseTest {
     private void doTestPerMessageDeflateClient(String msg, int count) throws 
Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerGetOpenSessions.java 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerGetOpenSessions.java
index 974275d5fb..3f9f9907a1 100644
--- 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerGetOpenSessions.java
+++ 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerGetOpenSessions.java
@@ -169,7 +169,7 @@ public class TestWsWebSocketContainerGetOpenSessions 
extends WebSocketBaseTest {
         Tracker.reset();
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
index 64e9e59c92..b6f0fbf603 100644
--- a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
+++ b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
@@ -81,7 +81,7 @@ public class TestWsWebSocketContainerSSL extends 
WebSocketBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSessionExpiryContainer.java
 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSessionExpiryContainer.java
index 790c71f28c..3267269361 100644
--- 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSessionExpiryContainer.java
+++ 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSessionExpiryContainer.java
@@ -42,7 +42,7 @@ public class TestWsWebSocketContainerSessionExpiryContainer 
extends WsWebSocketC
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSessionExpirySession.java
 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSessionExpirySession.java
index bb893e4ae6..e061204ef0 100644
--- 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSessionExpirySession.java
+++ 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSessionExpirySession.java
@@ -42,7 +42,7 @@ public class TestWsWebSocketContainerSessionExpirySession 
extends WsWebSocketCon
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerTimeoutClient.java 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerTimeoutClient.java
index 401e1ea00f..86e2f23662 100644
--- 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerTimeoutClient.java
+++ 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerTimeoutClient.java
@@ -59,7 +59,7 @@ public class TestWsWebSocketContainerTimeoutClient extends 
WsWebSocketContainerB
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(BlockingConfig.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerTimeoutServer.java 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerTimeoutServer.java
index ea30d0eee0..b3b31b699c 100644
--- 
a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerTimeoutServer.java
+++ 
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerTimeoutServer.java
@@ -76,7 +76,7 @@ public class TestWsWebSocketContainerTimeoutServer extends 
WsWebSocketContainerB
         Tomcat tomcat = getTomcatInstance();
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(ConstantTxConfig.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/TesterWebSocketClientProxy.java 
b/test/org/apache/tomcat/websocket/TesterWebSocketClientProxy.java
index 1bb9c4a225..4182b5bb2b 100644
--- a/test/org/apache/tomcat/websocket/TesterWebSocketClientProxy.java
+++ b/test/org/apache/tomcat/websocket/TesterWebSocketClientProxy.java
@@ -130,7 +130,7 @@ public class TesterWebSocketClientProxy extends 
WebSocketBaseTest {
         tomcat.getConnector().setProperty("address", "0.0.0.0");
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/WebSocketBaseTest.java 
b/test/org/apache/tomcat/websocket/WebSocketBaseTest.java
index 84b8414fcd..5e714ab1ec 100644
--- a/test/org/apache/tomcat/websocket/WebSocketBaseTest.java
+++ b/test/org/apache/tomcat/websocket/WebSocketBaseTest.java
@@ -32,7 +32,7 @@ public abstract class WebSocketBaseTest extends 
TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(configClass.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java 
b/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
index 597b240e34..c955e91587 100644
--- a/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
+++ b/test/org/apache/tomcat/websocket/pojo/TestEncodingDecoding.java
@@ -77,7 +77,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
     public void testProgrammaticEndPoints() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         
ctx.addApplicationListener(ProgrammaticServerEndpointConfig.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -123,7 +123,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(ServerConfigListener.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -180,7 +180,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(ServerConfigListener.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -228,7 +228,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(ServerConfigListener.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -274,7 +274,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(ServerConfigListener.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -760,7 +760,7 @@ public class TestEncodingDecoding extends TomcatBaseTest {
     public void testUnsupportedObject() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         
ctx.addApplicationListener(ProgrammaticServerEndpointConfig.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/pojo/TestPojoEndpointBase.java 
b/test/org/apache/tomcat/websocket/pojo/TestPojoEndpointBase.java
index 503640019c..0eaaacc3c6 100644
--- a/test/org/apache/tomcat/websocket/pojo/TestPojoEndpointBase.java
+++ b/test/org/apache/tomcat/websocket/pojo/TestPojoEndpointBase.java
@@ -53,7 +53,7 @@ public class TestPojoEndpointBase extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(ServerConfigListener.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -83,7 +83,7 @@ public class TestPojoEndpointBase extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(ServerConfigListener.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/pojo/TestPojoMethodMapping.java 
b/test/org/apache/tomcat/websocket/pojo/TestPojoMethodMapping.java
index 8ac63dd56e..73a47aa303 100644
--- a/test/org/apache/tomcat/websocket/pojo/TestPojoMethodMapping.java
+++ b/test/org/apache/tomcat/websocket/pojo/TestPojoMethodMapping.java
@@ -56,7 +56,7 @@ public class TestPojoMethodMapping extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(ServerConfigListener.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/server/TestAsyncMessages.java 
b/test/org/apache/tomcat/websocket/server/TestAsyncMessages.java
index ed47f05af3..4a2ef86b39 100644
--- a/test/org/apache/tomcat/websocket/server/TestAsyncMessages.java
+++ b/test/org/apache/tomcat/websocket/server/TestAsyncMessages.java
@@ -45,7 +45,7 @@ public class TestAsyncMessages extends TomcatBaseTest {
 
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(TesterAsyncTiming.Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/server/TestClassLoader.java 
b/test/org/apache/tomcat/websocket/server/TestClassLoader.java
index ffcbcb32d6..12037a6dd0 100644
--- a/test/org/apache/tomcat/websocket/server/TestClassLoader.java
+++ b/test/org/apache/tomcat/websocket/server/TestClassLoader.java
@@ -53,7 +53,7 @@ public class TestClassLoader extends WebSocketBaseTest {
     public void testSimple() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Config.class.getName());
 
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
diff --git a/test/org/apache/tomcat/websocket/server/TestCloseBug58624.java 
b/test/org/apache/tomcat/websocket/server/TestCloseBug58624.java
index 5dde76f61e..f03d9f8c62 100644
--- a/test/org/apache/tomcat/websocket/server/TestCloseBug58624.java
+++ b/test/org/apache/tomcat/websocket/server/TestCloseBug58624.java
@@ -47,7 +47,7 @@ public class TestCloseBug58624 extends WebSocketBaseTest {
     public void testOnErrorNotCalledWhenClosingConnection() throws Throwable {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Bug58624ServerConfig.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/server/TestShutdown.java 
b/test/org/apache/tomcat/websocket/server/TestShutdown.java
index b901a50043..5851c4bd5a 100644
--- a/test/org/apache/tomcat/websocket/server/TestShutdown.java
+++ b/test/org/apache/tomcat/websocket/server/TestShutdown.java
@@ -51,7 +51,7 @@ public class TestShutdown extends WebSocketBaseTest {
     public void testShutdownBufferedMessages() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(EchoBufferedConfig.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/server/TestSlowClient.java 
b/test/org/apache/tomcat/websocket/server/TestSlowClient.java
index 4a093149c5..411c395045 100644
--- a/test/org/apache/tomcat/websocket/server/TestSlowClient.java
+++ b/test/org/apache/tomcat/websocket/server/TestSlowClient.java
@@ -40,7 +40,7 @@ public class TestSlowClient extends WebSocketBaseTest {
     @Test
     public void testSendingFromAppThread() throws Exception {
         Tomcat tomcat = getTomcatInstance();
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         // Server side endpoint that sends a stream of messages on a new thread
         // in response to any message received.
         
ctx.addApplicationListener(TesterFirehoseServer.ConfigThread.class.getName());
diff --git 
a/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServer.java 
b/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServer.java
index 4a6271fe7e..773b9cf834 100644
--- 
a/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServer.java
+++ 
b/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServer.java
@@ -65,7 +65,7 @@ public class TestWsRemoteEndpointImplServer extends 
WebSocketBaseTest {
     public void testClientDropsConnection() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Bug58624Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git 
a/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServerDeadlock.java
 
b/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServerDeadlock.java
index a3a0d10773..7959daa38c 100644
--- 
a/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServerDeadlock.java
+++ 
b/test/org/apache/tomcat/websocket/server/TestWsRemoteEndpointImplServerDeadlock.java
@@ -105,7 +105,7 @@ public class TestWsRemoteEndpointImplServerDeadlock extends 
WebSocketBaseTest {
         Assert.assertTrue(tomcat.getConnector().setProperty("useAsyncIO", 
useAsyncIO.toString()));
 
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Bug66508Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
diff --git a/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java 
b/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java
index db18f0c06e..8bc0094131 100644
--- a/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java
+++ b/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java
@@ -48,7 +48,7 @@ public class TestWsServerContainer extends WebSocketBaseTest {
     public void testBug54807() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Bug54807Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");
@@ -63,7 +63,7 @@ public class TestWsServerContainer extends WebSocketBaseTest {
     public void testBug58232() throws Exception {
         Tomcat tomcat = getTomcatInstance();
         // No file system docBase required
-        Context ctx = tomcat.addContext("", null);
+        Context ctx = getProgrammaticRootContext();
         ctx.addApplicationListener(Bug54807Config.class.getName());
         Tomcat.addServlet(ctx, "default", new DefaultServlet());
         ctx.addServletMappingDecoded("/", "default");


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to