diff --git a/tck/README.md b/tck/README.md
new file mode 100644
index 000000000..e04134c4c
--- /dev/null
+++ b/tck/README.md
@@ -0,0 +1,45 @@
+# Jakarta Servlet
+
+This repository contains the code for Jakarta Servle TCK
+
+About Jakarta Servlet TCK
+-------------------------
+Jakarta Servlet TCK defines a server-side API for handling HTTP requests and is based on Junit5 and Arquillian.
+
+Building
+--------
+Prerequisites:
+
+* JDK 11+
+* Maven 3.9.0+
+
+Run the build:
+
+`mvn install`
+
+Running TCK
+------------
+You need to configure your Apache Maven build to run tests from the tck artifacts.
+This will be achieved by adding a dependency within your surefire configuration
+```xml
+
+
+ jakarta.servlet
+ tck-runtime
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${surefire.version}
+
+
+ jakarta.servlet:tck-runtime
+
+
+
+ false
+
+
+
+```
diff --git a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTestServlet.java b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTestServlet.java
index d277df046..5c6aca679 100644
--- a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTestServlet.java
+++ b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTestServlet.java
@@ -21,11 +21,13 @@
import java.io.IOException;
+import jakarta.servlet.ServletContext;
import servlet.tck.common.servlets.GenericTCKServlet;
import jakarta.servlet.AsyncContext;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
+import servlet.tck.common.util.ServletTestUtil;
public class DispatchTestServlet extends GenericTCKServlet {
@@ -156,9 +158,12 @@ public void dispatchReturnTest4(ServletRequest request,
AsyncContext ac = request.startAsync();
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests10?testname=dispatchTest10");
+ ServletContext context = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if (context!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(context,"/DispatchTests10?testname=dispatchTest10");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -176,9 +181,12 @@ public void dispatchReturnTest5(ServletRequest request,
AsyncContext ac = request.startAsync(request, response);
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests10?testname=dispatchTest10");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT ) {
+ ac.dispatch(servletContext, "/DispatchTests10?testname=dispatchTest10");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -584,9 +592,12 @@ public void startAsyncAgainTest12(ServletRequest request,
AsyncContext ac = request.startAsync();
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests11?testname=dispatchTest11");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null|| ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests11?testname=dispatchTest11");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -604,9 +615,12 @@ public void startAsyncAgainTest13(ServletRequest request,
AsyncContext ac = request.startAsync(request, response);
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests12?testname=dispatchTest12");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null|| ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests12?testname=dispatchTest12");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -624,9 +638,12 @@ public void startAsyncAgainTest14(ServletRequest request,
AsyncContext ac = request.startAsync();
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests13?testname=dispatchTest13");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null|| ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests13?testname=dispatchTest13");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -644,9 +661,12 @@ public void startAsyncAgainTest15(ServletRequest request,
AsyncContext ac = request.startAsync(request, response);
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests14?testname=dispatchTest14");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null|| ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests14?testname=dispatchTest14");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -664,9 +684,12 @@ public void startAsyncAgainTest16(ServletRequest request,
AsyncContext ac = request.startAsync();
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests15?testname=dispatchTest15");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null|| ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests15?testname=dispatchTest15");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -684,9 +707,12 @@ public void startAsyncAgainTest17(ServletRequest request,
AsyncContext ac = request.startAsync(request, response);
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests16?testname=dispatchTest16");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests16?testname=dispatchTest16");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -847,22 +873,25 @@ public void negativeDispatchTest8(ServletRequest request,
AsyncContext ac = request.startAsync();
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests10?testname=dispatchTest10");
- response.getWriter()
- .println("dispatch return=" + System.currentTimeMillis());
-
- try {
- response.getWriter().println("dispatch again");
- ac.dispatch(
- request.getServletContext()
- .getContext(getDispatcher1ContextRoot()),
- "/DispatchTests19?testname=dispatchTest19");
- } catch (IllegalStateException ex) {
- response.getWriter().println("dispatch() called again");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests10?testname=dispatchTest10");
response.getWriter()
- .println("Expected IllegalStateException thrown" + ex.getMessage());
+ .println("dispatch return=" + System.currentTimeMillis());
+
+ try {
+ response.getWriter().println("dispatch again");
+ ac.dispatch(
+ request.getServletContext()
+ .getContext(getDispatcher1ContextRoot()),
+ "/DispatchTests19?testname=dispatchTest19");
+ } catch (IllegalStateException ex) {
+ response.getWriter().println("dispatch() called again");
+ response.getWriter()
+ .println("Expected IllegalStateException thrown" + ex.getMessage());
+ }
+ } else {
+ ac.complete();
}
}
@@ -879,22 +908,25 @@ public void negativeDispatchTest9(ServletRequest request,
AsyncContext ac = request.startAsync(request, response);
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests10?testname=dispatchTest10");
- response.getWriter()
- .println("dispatch return=" + System.currentTimeMillis());
-
- try {
- response.getWriter().println("dispatch again");
- ac.dispatch(
- request.getServletContext()
- .getContext(getDispatcher1ContextRoot()),
- "/DispatchTests19?testname=dispatchTest19");
- } catch (IllegalStateException ex) {
- response.getWriter().println("dispatch() called again");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests10?testname=dispatchTest10");
response.getWriter()
- .println("Expected IllegalStateException thrown" + ex.getMessage());
+ .println("dispatch return=" + System.currentTimeMillis());
+
+ try {
+ response.getWriter().println("dispatch again");
+ ac.dispatch(
+ request.getServletContext()
+ .getContext(getDispatcher1ContextRoot()),
+ "/DispatchTests19?testname=dispatchTest19");
+ } catch (IllegalStateException ex) {
+ response.getWriter().println("dispatch() called again");
+ response.getWriter()
+ .println("Expected IllegalStateException thrown" + ex.getMessage());
+ }
+ } else {
+ ac.complete();
}
}
@@ -912,19 +944,22 @@ public void negativeDispatchTest12(ServletRequest request,
AsyncContext ac = request.startAsync();
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests10?testname=dispatchTest10");
- response.getWriter()
- .println("dispatch return=" + System.currentTimeMillis());
-
- try {
- response.getWriter().println("dispatch again");
- ac.dispatch("/DispatchTests?testname=dispatchTest");
- } catch (IllegalStateException ex) {
- response.getWriter().println("dispatch(URI) called again");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests10?testname=dispatchTest10");
response.getWriter()
- .println("Expected IllegalStateException thrown" + ex.getMessage());
+ .println("dispatch return=" + System.currentTimeMillis());
+
+ try {
+ response.getWriter().println("dispatch again");
+ ac.dispatch("/DispatchTests?testname=dispatchTest");
+ } catch (IllegalStateException ex) {
+ response.getWriter().println("dispatch(URI) called again");
+ response.getWriter()
+ .println("Expected IllegalStateException thrown" + ex.getMessage());
+ }
+ } else {
+ ac.complete();
}
}
@@ -942,19 +977,22 @@ public void negativeDispatchTest13(ServletRequest request,
AsyncContext ac = request.startAsync(request, response);
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests10?testname=dispatchTest10");
- response.getWriter()
- .println("dispatch return=" + System.currentTimeMillis());
-
- try {
- response.getWriter().println("dispatch again");
- ac.dispatch("/DispatchTests?testname=dispatchTest");
- } catch (IllegalStateException ex) {
- response.getWriter().println("dispatch(URI) called again");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests10?testname=dispatchTest10");
response.getWriter()
- .println("Expected IllegalStateException thrown" + ex.getMessage());
+ .println("dispatch return=" + System.currentTimeMillis());
+
+ try {
+ response.getWriter().println("dispatch again");
+ ac.dispatch("/DispatchTests?testname=dispatchTest");
+ } catch (IllegalStateException ex) {
+ response.getWriter().println("dispatch(URI) called again");
+ response.getWriter()
+ .println("Expected IllegalStateException thrown" + ex.getMessage());
+ }
+ } else {
+ ac.complete();
}
}
@@ -1087,9 +1125,12 @@ public void dispatchAfterCommitTest4(ServletRequest request,
AsyncContext ac = request.startAsync();
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests10?testname=dispatchTest10");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests10?testname=dispatchTest10");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
@@ -1110,9 +1151,12 @@ public void dispatchAfterCommitTest5(ServletRequest request,
AsyncContext ac = request.startAsync(request, response);
response.getWriter()
.println("Before dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(getDispatcher1ContextRoot()),
- "/DispatchTests10?testname=dispatchTest10");
+ ServletContext servletContext = request.getServletContext().getContext(getDispatcher1ContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests10?testname=dispatchTest10");
+ } else {
+ ac.complete();
+ }
response.getWriter()
.println("dispatch return=" + System.currentTimeMillis());
}
diff --git a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests.java b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests.java
index e154e6edd..9fbe755b1 100644
--- a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests.java
+++ b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests.java
@@ -28,6 +28,7 @@
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import servlet.tck.common.util.ServletTestUtil;
import java.net.URL;
@@ -205,12 +206,19 @@ public void dispatchReturnTest3() throws Exception {
@Test
public void dispatchReturnTest4() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "dispatchReturnTest4");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_dispatchReturnTest4|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ if (ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_dispatchReturnTest4|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,"ASYNC_NOT_STARTED_dispatchReturnTest4|"
+ + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|"
+ + "DispatcherType=REQUEST");
+ }
invoke();
}
@@ -233,12 +241,19 @@ public void dispatchReturnTest4() throws Exception {
@Test
public void dispatchReturnTest5() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "dispatchReturnTest5");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_dispatchReturnTest5|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ if (ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_dispatchReturnTest5|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,"ASYNC_NOT_STARTED_dispatchReturnTest5|"
+ + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|"
+ + "DispatcherType=REQUEST");
+ }
invoke();
}
@@ -656,16 +671,23 @@ public void startAsyncAgainTest11() throws Exception {
@Test
public void startAsyncAgainTest12() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "startAsyncAgainTest12");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_startAsyncAgainTest12|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest11|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
- + "Before second dispatch|" + "second dispatch return|"
- + "After dispatch|" + "ASYNC_STARTED_dispatchTest|"
- + "IsAsyncSupported=true|" + "IsAsyncStarted=false|"
- + "DispatcherType=ASYNC");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest12|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest11|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
+ + "Before second dispatch|" + "second dispatch return|"
+ + "After dispatch|" + "ASYNC_STARTED_dispatchTest|"
+ + "IsAsyncSupported=true|" + "IsAsyncStarted=false|"
+ + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest12|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -689,16 +711,23 @@ public void startAsyncAgainTest12() throws Exception {
@Test
public void startAsyncAgainTest13() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "startAsyncAgainTest13");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_startAsyncAgainTest13|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest12|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
- + "Before second dispatch|" + "second dispatch return|"
- + "After dispatch|" + "ASYNC_STARTED_dispatchTest|"
- + "IsAsyncSupported=true|" + "IsAsyncStarted=false|"
- + "DispatcherType=ASYNC");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest13|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest12|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
+ + "Before second dispatch|" + "second dispatch return|"
+ + "After dispatch|" + "ASYNC_STARTED_dispatchTest|"
+ + "IsAsyncSupported=true|" + "IsAsyncStarted=false|"
+ + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest13|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -723,13 +752,20 @@ public void startAsyncAgainTest13() throws Exception {
@Test
public void startAsyncAgainTest14() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "startAsyncAgainTest14");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_startAsyncAgainTest14|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest13|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
- + "Before complete");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest14|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest13|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
+ + "Before complete");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest14|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -753,13 +789,20 @@ public void startAsyncAgainTest14() throws Exception {
@Test
public void startAsyncAgainTest15() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "startAsyncAgainTest15");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_startAsyncAgainTest15|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest14|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
- + "Before complete");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest15|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest14|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
+ + "Before complete");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest15|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -783,16 +826,23 @@ public void startAsyncAgainTest15() throws Exception {
@Test
public void startAsyncAgainTest16() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "startAsyncAgainTest16");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_startAsyncAgainTest16|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest15|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
- + "startAsync called|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=true|" + "DispatcherType=ASYNC|"
- + "startAsync called again|"
- + "Expected IllegalStateException thrown");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest16|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest15|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
+ + "startAsync called|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=true|" + "DispatcherType=ASYNC|"
+ + "startAsync called again|"
+ + "Expected IllegalStateException thrown");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest16|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -816,16 +866,24 @@ public void startAsyncAgainTest16() throws Exception {
@Test
public void startAsyncAgainTest17() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "startAsyncAgainTest17");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_startAsyncAgainTest17|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest16|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
- + "startAsync called|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=true|" + "DispatcherType=ASYNC|"
- + "startAsync called again|"
- + "Expected IllegalStateException thrown");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_startAsyncAgainTest17|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest16|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC|"
+ + "startAsync called|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=true|" + "DispatcherType=ASYNC|"
+ + "startAsync called again|"
+ + "Expected IllegalStateException thrown");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING, "ASYNC_NOT_STARTED_startAsyncAgainTest17|"
+ + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|"
+ + "DispatcherType=REQUEST");
+ }
+
invoke();
}
@@ -967,14 +1025,21 @@ public void negativeDispatchTest5() throws Exception {
@Test
public void negativeDispatchTest8() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "negativeDispatchTest8");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_negativeDispatchTest8|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "dispatch again|"
- + "dispatch() called again|"
- + "Expected IllegalStateException thrown|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_negativeDispatchTest8|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "dispatch again|"
+ + "dispatch() called again|"
+ + "Expected IllegalStateException thrown|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_negativeDispatchTest8|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -998,14 +1063,21 @@ public void negativeDispatchTest8() throws Exception {
@Test
public void negativeDispatchTest9() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "negativeDispatchTest9");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_negativeDispatchTest9|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "dispatch again|"
- + "dispatch() called again|"
- + "Expected IllegalStateException thrown|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_negativeDispatchTest9|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "dispatch again|"
+ + "dispatch() called again|"
+ + "Expected IllegalStateException thrown|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_negativeDispatchTest9|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -1029,14 +1101,21 @@ public void negativeDispatchTest9() throws Exception {
@Test
public void negativeDispatchTest12() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "negativeDispatchTest12");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_negativeDispatchTest12|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "dispatch again|"
- + "dispatch(URI) called again|"
- + "Expected IllegalStateException thrown|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_negativeDispatchTest12|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "dispatch again|"
+ + "dispatch(URI) called again|"
+ + "Expected IllegalStateException thrown|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_negativeDispatchTest12|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -1060,14 +1139,21 @@ public void negativeDispatchTest12() throws Exception {
@Test
public void negativeDispatchTest13() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "negativeDispatchTest13");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_negativeDispatchTest13|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "Before dispatch|" + "dispatch return|" + "dispatch again|"
- + "dispatch(URI) called again|"
- + "Expected IllegalStateException thrown|" + "After dispatch|"
- + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_negativeDispatchTest13|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|" + "dispatch return|" + "dispatch again|"
+ + "dispatch(URI) called again|"
+ + "Expected IllegalStateException thrown|" + "After dispatch|"
+ + "ASYNC_STARTED_dispatchTest10|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_negativeDispatchTest13|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "Before dispatch|");
+ }
invoke();
}
@@ -1186,13 +1272,20 @@ public void dispatchAfterCommitTest3() throws Exception {
@Test
public void dispatchAfterCommitTest4() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "dispatchAfterCommitTest4");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_dispatchAfterCommitTest4|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "After commmit|" + "Before dispatch|" + "dispatch return|"
- + "After dispatch|" + "ASYNC_STARTED_dispatchTest10|"
- + "IsAsyncSupported=true|" + "IsAsyncStarted=false|"
- + "DispatcherType=ASYNC");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_dispatchAfterCommitTest4|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "After commmit|" + "Before dispatch|" + "dispatch return|"
+ + "After dispatch|" + "ASYNC_STARTED_dispatchTest10|"
+ + "IsAsyncSupported=true|" + "IsAsyncStarted=false|"
+ + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_dispatchAfterCommitTest4|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "After commmit|" + "Before dispatch|");
+ }
invoke();
}
@@ -1211,13 +1304,20 @@ public void dispatchAfterCommitTest4() throws Exception {
@Test
public void dispatchAfterCommitTest5() throws Exception {
TEST_PROPS.get().setProperty(APITEST, "dispatchAfterCommitTest5");
- TEST_PROPS.get().setProperty(SEARCH_STRING,
- "ASYNC_NOT_STARTED_dispatchAfterCommitTest5|" + "IsAsyncSupported=true|"
- + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
- + "After commmit|" + "Before dispatch|" + "dispatch return|"
- + "After dispatch|" + "ASYNC_STARTED_dispatchTest10|"
- + "IsAsyncSupported=true|" + "IsAsyncStarted=false|"
- + "DispatcherType=ASYNC");
+ if(ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_dispatchAfterCommitTest5|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "After commmit|" + "Before dispatch|" + "dispatch return|"
+ + "After dispatch|" + "ASYNC_STARTED_dispatchTest10|"
+ + "IsAsyncSupported=true|" + "IsAsyncStarted=false|"
+ + "DispatcherType=ASYNC");
+ } else {
+ TEST_PROPS.get().setProperty(SEARCH_STRING,
+ "ASYNC_NOT_STARTED_dispatchAfterCommitTest5|" + "IsAsyncSupported=true|"
+ + "IsAsyncStarted=false|" + "DispatcherType=REQUEST|"
+ + "After commmit|" + "Before dispatch|");
+ }
invoke();
}
}
diff --git a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests11.java b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests11.java
index 6d6ae4320..304674315 100644
--- a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests11.java
+++ b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests11.java
@@ -19,15 +19,18 @@
*/
package servlet.tck.api.jakarta_servlet.dispatchtest;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
import jakarta.servlet.AsyncContext;
import jakarta.servlet.GenericServlet;
+import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
+import servlet.tck.common.util.ServletTestUtil;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
public class DispatchTests11 extends GenericServlet {
@@ -84,10 +87,12 @@ public void dispatchTest11(ServletRequest request, ServletResponse response)
AsyncContext ac = request.startAsync();
response.getWriter()
.println("Before second dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(DispatchTestServlet.getDispatcherContextRoot()),
- "/DispatchTests?testname=dispatchTest");
+ ServletContext context = request.getServletContext().getContext(DispatchTestServlet.getDispatcherContextRoot());
+ if(context != null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(context, "/DispatchTests?testname=dispatchTest");
+ }
+ // we admit cross context not supported and so validate it
response.getWriter()
- .println("second dispatch return=" + System.currentTimeMillis());
+ .println("second dispatch return=" + System.currentTimeMillis());
}
}
diff --git a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests12.java b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests12.java
index b7aff82b2..ba1000ddf 100644
--- a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests12.java
+++ b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet/dispatchtest/DispatchTests12.java
@@ -23,11 +23,8 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import jakarta.servlet.AsyncContext;
-import jakarta.servlet.GenericServlet;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.ServletRequest;
-import jakarta.servlet.ServletResponse;
+import jakarta.servlet.*;
+import servlet.tck.common.util.ServletTestUtil;
public class DispatchTests12 extends GenericServlet {
@@ -84,9 +81,10 @@ public void dispatchTest12(ServletRequest request, ServletResponse response)
AsyncContext ac = request.startAsync(request, response);
response.getWriter()
.println("Before second dispatch=" + System.currentTimeMillis());
- ac.dispatch(
- request.getServletContext().getContext(DispatchTestServlet.getDispatcherContextRoot()),
- "/DispatchTests?testname=dispatchTest");
+ ServletContext servletContext = request.getServletContext().getContext(DispatchTestServlet.getDispatcherContextRoot());
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ ac.dispatch(servletContext, "/DispatchTests?testname=dispatchTest");
+ }
response.getWriter()
.println("second dispatch return=" + System.currentTimeMillis());
}
diff --git a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet_http/httpsessionx/ExpireHttpSession.java b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet_http/httpsessionx/ExpireHttpSession.java
index fc54ecdbf..6fdf8c3a2 100644
--- a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet_http/httpsessionx/ExpireHttpSession.java
+++ b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet_http/httpsessionx/ExpireHttpSession.java
@@ -38,7 +38,7 @@ public void service(HttpServletRequest request, HttpServletResponse response)
ServletTestUtil.printResult(pw, true);
} else {
pw.println(
- "From expireHttpSession: Test Failed. Session didnot expire as expected.");
+ "From expireHttpSession: Test Failed. Session did not expire as expected.");
ServletTestUtil.printResult(pw, false);
}
}
diff --git a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet_http/httpsessionx/TestServlet.java b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet_http/httpsessionx/TestServlet.java
index c4e407aa7..ff42cd4a2 100644
--- a/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet_http/httpsessionx/TestServlet.java
+++ b/tck/tck-runtime/src/main/java/servlet/tck/api/jakarta_servlet_http/httpsessionx/TestServlet.java
@@ -44,10 +44,15 @@ public void getNewSessionx(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
ServletContext servletContext = getServletContext()
.getContext("/servlet_jsh_httpsessionx2_web");
- RequestDispatcher rd = servletContext
- .getRequestDispatcher("/getNewSession");
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ RequestDispatcher rd = servletContext
+ .getRequestDispatcher("/getNewSession");
+
+ rd.include(request, response);
+ } else {
+ response.getWriter().println("Test PASSED");
+ }
- rd.include(request, response);
}
public void setMaxInactiveIntervalTest(HttpServletRequest request,
@@ -100,30 +105,41 @@ public void setMaxInactiveIntervalxiTest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
ServletContext servletContext = getServletContext()
.getContext("/servlet_jsh_httpsessionx2_web");
- RequestDispatcher rd = servletContext
- .getRequestDispatcher("/setMaxInterval");
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ RequestDispatcher rd = servletContext
+ .getRequestDispatcher("/setMaxInterval");
- rd.include(request, response);
+ rd.include(request, response);
+ } else {
+ response.getWriter().println("Test PASSED");
+ }
}
public void setMaxInactiveIntervalxfTest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
ServletContext servletContext = getServletContext()
.getContext("/servlet_jsh_httpsessionx2_web");
- RequestDispatcher rd = servletContext
- .getRequestDispatcher("/setMaxInterval");
-
- rd.forward(request, response);
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ RequestDispatcher rd = servletContext
+ .getRequestDispatcher("/setMaxInterval");
+ rd.forward(request, response);
+ } else {
+ response.getWriter().println("Test PASSED");
+ }
}
public void expireHttpSessionxriTest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
ServletContext servletContext = getServletContext()
.getContext("/servlet_jsh_httpsessionx2_web");
- RequestDispatcher rd = servletContext
- .getRequestDispatcher("/expireHttpSession");
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ RequestDispatcher rd = servletContext
+ .getRequestDispatcher("/expireHttpSession");
- rd.include(request, response);
+ rd.include(request, response);
+ } else {
+ response.getWriter().println("Test PASSED");
+ }
}
public void expireHttpSessionxrfTest(HttpServletRequest request,
@@ -131,10 +147,14 @@ public void expireHttpSessionxrfTest(HttpServletRequest request,
ServletContext servletContext = getServletContext()
.getContext("/servlet_jsh_httpsessionx2_web");
- RequestDispatcher rd = servletContext
- .getRequestDispatcher("/expireHttpSession");
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ RequestDispatcher rd = servletContext
+ .getRequestDispatcher("/expireHttpSession");
- rd.forward(request, response);
+ rd.forward(request, response);
+ } else {
+ response.getWriter().println("Test PASSED");
+ }
}
public void invalidateSessionTest(HttpServletRequest request,
@@ -162,9 +182,13 @@ public void invalidateSessionxTest(HttpServletRequest request,
ServletContext servletContext = getServletContext()
.getContext("/servlet_jsh_httpsessionx2_web");
- RequestDispatcher rd = servletContext
- .getRequestDispatcher("/invalidateHttpSession");
+ if(servletContext!=null || ServletTestUtil.SUPPORT_CROSS_CONTEXT) {
+ RequestDispatcher rd = servletContext
+ .getRequestDispatcher("/invalidateHttpSession");
- rd.include(request, response);
+ rd.include(request, response);
+ } else {
+ response.getWriter().println("Test PASSED");
+ }
}
}
diff --git a/tck/tck-runtime/src/main/java/servlet/tck/common/util/ServletTestUtil.java b/tck/tck-runtime/src/main/java/servlet/tck/common/util/ServletTestUtil.java
index 69ba95cf6..2ea4068fd 100644
--- a/tck/tck-runtime/src/main/java/servlet/tck/common/util/ServletTestUtil.java
+++ b/tck/tck-runtime/src/main/java/servlet/tck/common/util/ServletTestUtil.java
@@ -43,6 +43,8 @@ public class ServletTestUtil {
private static Logger LOGGER = LoggerFactory.getLogger(ServletTestUtil.class);
+ public static boolean SUPPORT_CROSS_CONTEXT = Boolean.parseBoolean(System.getProperty("servlet.tck.support.crossContext", "true"));
+
/**
* Private as this class contains only public static methods.
*/
@@ -177,8 +179,7 @@ public static boolean checkArrayList(ArrayList al, String[] values,
Arrays.sort(values);
int len = al.size();
for (int i = 0; i < len; i++) {
- Object val = null;
- val = (String) al.get(i);
+ Object val = (String) al.get(i);
LOGGER.debug("[ServletTestUtil] val= {}", val);
if (!allowDuplicates) {
if (foundValues.contains(val)) {
@@ -193,7 +194,6 @@ public static boolean checkArrayList(ArrayList al, String[] values,
if ((Arrays.binarySearch(values, val) < 0) && (enforceSizes)) {
LOGGER.info("[ServletTestUtil] Value '{}' not found.", val);
valuesFound = false;
- continue;
}
}