diff --git a/src/main/scala/servlet/SessionCleanupListener.scala b/src/main/scala/servlet/SessionCleanupListener.scala
new file mode 100644
index 0000000..cff794e
--- /dev/null
+++ b/src/main/scala/servlet/SessionCleanupListener.scala
@@ -0,0 +1,19 @@
+package servlet
+
+import util.FileUploadUtil
+import javax.servlet.http.{HttpSessionEvent, HttpSessionListener}
+import javax.servlet.annotation.WebListener
+
+/**
+ * Removes session associated temporary files when session is destroyed.
+ */
+class SessionCleanupListener extends HttpSessionListener {
+
+ def sessionCreated(se: HttpSessionEvent): Unit = {}
+
+ def sessionDestroyed(se: HttpSessionEvent): Unit = {
+ println("** session destroyed: " + se.getSession.getId)
+ FileUploadUtil.removeTemporaryFiles()(se.getSession)
+ }
+
+}
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index a051a67..101dcd9 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -5,12 +5,19 @@
version="3.0">
+
+
+
+ servlet.SessionCleanipListener
+
+
+
org.scalatra.servlet.ScalatraListener
-
+
GitRepositoryServlet
servlet.GitRepositoryServlet