From e0c7beb7b343ea2da06645c51f9e954342a30427 Mon Sep 17 00:00:00 2001 From: markt Date: Fri, 1 Jul 2011 14:05:00 +0000 Subject: [PATCH] If things go wrong, don't wait forever for the latch. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1141944 13f79535-47bb-0310-9956-ffa450edef68 --- test/org/apache/catalina/core/TestStandardWrapper.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/test/org/apache/catalina/core/TestStandardWrapper.java b/test/org/apache/catalina/core/TestStandardWrapper.java index e43be0eb5..d8159abff 100644 --- a/test/org/apache/catalina/core/TestStandardWrapper.java +++ b/test/org/apache/catalina/core/TestStandardWrapper.java @@ -26,6 +26,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; import javax.servlet.Servlet; import javax.servlet.ServletConfig; @@ -455,6 +456,7 @@ public class TestStandardWrapper extends TomcatBaseTest { implements javax.servlet.SingleThreadModel { private static final long serialVersionUID = 1L; + private static final long LATCH_TIMEOUT = 60; private int data = 0; @@ -462,16 +464,22 @@ public class TestStandardWrapper extends TomcatBaseTest { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + boolean latchAwaitResult = false; + // Ensure all threads have their own instance of the servlet latch.countDown(); try { - latch.await(); + latchAwaitResult = latch.await(LATCH_TIMEOUT, TimeUnit.SECONDS); } catch (InterruptedException e) { // Ignore } resp.setContentType("text/plain"); - resp.getWriter().print(data); + if (latchAwaitResult) { + resp.getWriter().print(data); + } else { + resp.getWriter().print("Latch await failed"); + } resp.getWriter().print(","); resp.getWriter().print(hashCode()); } -- 2.11.0