Implements destroy() method of servlet to ensure that shared JanitorThread terminates.
TAPESTRY-230: Ignored interruptedException prevents Janitorthread termination.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/tapestry/branches/branch-3-0@244163 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/framework/src/org/apache/tapestry/ApplicationServlet.java b/framework/src/org/apache/tapestry/ApplicationServlet.java
index 00e28b4..80ce4a0 100644
--- a/framework/src/org/apache/tapestry/ApplicationServlet.java
+++ b/framework/src/org/apache/tapestry/ApplicationServlet.java
@@ -39,6 +39,7 @@
import org.apache.tapestry.spec.IApplicationSpecification;
import org.apache.tapestry.util.DefaultResourceResolver;
import org.apache.tapestry.util.DelegatingPropertySource;
+import org.apache.tapestry.util.JanitorThread;
import org.apache.tapestry.util.ServletContextPropertySource;
import org.apache.tapestry.util.ServletPropertySource;
import org.apache.tapestry.util.SystemPropertiesPropertySource;
@@ -787,4 +788,20 @@
return _resolver;
}
+ /**
+ * Ensures that shared janitor thread is terminated.
+ * @see javax.servlet.Servlet#destroy()
+ * @since 3.0.3
+ */
+ public void destroy()
+ {
+ try
+ {
+ JanitorThread.getSharedJanitorThread().interrupt();
+ }
+ finally
+ {
+ super.destroy();
+ }
+ }
}
\ No newline at end of file