Author: markt
Date: Mon Nov 29 16:58:31 2010
New Revision: 1040190

URL: http://svn.apache.org/viewvc?rev=1040190&view=rev
Log:
Test case for https://issues.apache.org/bugzilla/show_bug.cgi?id=50352

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

Modified: tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java?rev=1040190&r1=1040189&r2=1040190&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/core/TestAsyncContextImpl.java Mon 
Nov 29 16:58:31 2010
@@ -749,4 +749,60 @@ public class TestAsyncContextImpl extend
             throw new ServletException("Opps.");
         }
     }
+    
+    public void testBug50352() throws Exception {
+        // Setup Tomcat instance
+        Tomcat tomcat = getTomcatInstance();
+        
+        // Must have a real docBase - just use temp
+        File docBase = new File(System.getProperty("java.io.tmpdir"));
+        
+        Context ctx = tomcat.addContext("", docBase.getAbsolutePath());
+
+        AsyncStartRunnable servlet = new AsyncStartRunnable();
+        Wrapper wrapper = Tomcat.addServlet(ctx, "servlet", servlet);
+        wrapper.setAsyncSupported(true);
+        ctx.addServletMapping("/", "servlet");
+
+        ErrorServlet error = new ErrorServlet();
+        Tomcat.addServlet(ctx, "error", error);
+        ctx.addServletMapping("/stage2", "error");
+
+        tomcat.start();
+        
+        ByteChunk res = getUrl("http://localhost:"; + getPort() + "/");
+        
+        assertEquals("Runnable-onComplete-", res.toString());
+    }
+    
+    private static final class AsyncStartRunnable extends HttpServlet {
+        
+        private static final long serialVersionUID = 1L;
+
+        @Override
+        protected void doGet(HttpServletRequest request,
+                HttpServletResponse response)
+                throws ServletException, IOException {
+            
+            final AsyncContext asyncContext =
+                request.startAsync(request, response);
+
+            asyncContext.addListener(new TrackingListener(false, false, null));
+
+            asyncContext.start(new Runnable() {
+
+                @Override
+                public void run() {
+                    try {
+                        Thread.sleep(3 * 1000);
+                        asyncContext.getResponse().getWriter().write(
+                                "Runnable-");
+                        asyncContext.complete();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            });
+        }
+    }
 }



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

Reply via email to