You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by vi...@apache.org on 2015/01/07 16:18:27 UTC

svn commit: r1650081 - /tomcat/trunk/test/org/apache/catalina/core/TestStandardHostValve.java

Author: violetagg
Date: Wed Jan  7 15:18:27 2015
New Revision: 1650081

URL: http://svn.apache.org/r1650081
Log:
Test case that reproduces ServletRequestListener.requestDestroyed problem. Mark it with @Ignore in order to keep the build 'green'.

Modified:
    tomcat/trunk/test/org/apache/catalina/core/TestStandardHostValve.java

Modified: tomcat/trunk/test/org/apache/catalina/core/TestStandardHostValve.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestStandardHostValve.java?rev=1650081&r1=1650080&r2=1650081&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestStandardHostValve.java (original)
+++ tomcat/trunk/test/org/apache/catalina/core/TestStandardHostValve.java Wed Jan  7 15:18:27 2015
@@ -17,13 +17,18 @@
 package org.apache.catalina.core;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
 
 import javax.servlet.ServletException;
+import javax.servlet.ServletRequestEvent;
+import javax.servlet.ServletRequestListener;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.junit.Assert;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import org.apache.catalina.Context;
@@ -68,6 +73,48 @@ public class TestStandardHostValve exten
         doTestErrorPageHandling(501, "/default");
     }
 
+    @Test
+    @Ignore
+    public void testSRLAfterError() throws Exception {
+        // Set up a container
+        Tomcat tomcat = getTomcatInstance();
+
+        // No file system docBase required
+        Context ctx = tomcat.addContext("", null);
+
+        // Add the error page
+        Tomcat.addServlet(ctx, "error", new ErrorServlet());
+        ctx.addServletMapping("/error", "error");
+
+        final List<String> result = new ArrayList<>();
+
+        // Add the request listener
+        ServletRequestListener servletRequestListener = new ServletRequestListener() {
+
+            @Override
+            public void requestDestroyed(ServletRequestEvent sre) {
+                result.add("Visit requestDestroyed");
+            }
+
+            @Override
+            public void requestInitialized(ServletRequestEvent sre) {
+                result.add("Visit requestInitialized");
+            }
+
+        };
+        ((StandardContext) ctx).addApplicationEventListener(servletRequestListener);
+
+        tomcat.start();
+
+        // Request a page that triggers an error
+        ByteChunk bc = new ByteChunk();
+        int rc = getUrl("http://localhost:" + getPort() + "/error?errorCode=400", bc, null);
+
+        Assert.assertEquals(400, rc);
+        Assert.assertTrue(result.contains("Visit requestInitialized"));
+        Assert.assertTrue(result.contains("Visit requestDestroyed"));
+    }
+
     private void doTestErrorPageHandling(int error, String report)
             throws Exception {
 



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