diff options
author | Jan Bartel | 2011-09-05 23:15:26 +0000 |
---|---|---|
committer | Jan Bartel | 2011-09-05 23:15:26 +0000 |
commit | 44204a2e5b9a4e83cf527fa07dd4040844af62cc (patch) | |
tree | 1744c8a307d45f9ebcc1b3becdf2bc5b68b25002 | |
parent | b1f95541de139723e19ff2eed0c9eaa8ed9eef8b (diff) | |
download | org.eclipse.jetty.project-44204a2e5b9a4e83cf527fa07dd4040844af62cc.tar.gz org.eclipse.jetty.project-44204a2e5b9a4e83cf527fa07dd4040844af62cc.tar.xz org.eclipse.jetty.project-44204a2e5b9a4e83cf527fa07dd4040844af62cc.zip |
356726 Instead of the sessionDestroyed called sessionCreated after invalidate session
2 files changed, 39 insertions, 1 deletions
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSessionManager.java b/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSessionManager.java index 8f43315560..60d1f3de71 100644 --- a/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSessionManager.java +++ b/jetty-server/src/main/java/org/eclipse/jetty/server/session/AbstractSessionManager.java @@ -734,7 +734,7 @@ public abstract class AbstractSessionManager extends AbstractLifeCycle implement { HttpSessionEvent event=new HttpSessionEvent(session); for (HttpSessionListener listener : _sessionListeners) - listener.sessionCreated(event); + listener.sessionDestroyed(event); } } } diff --git a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractRemoveSessionTest.java b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractRemoveSessionTest.java index a432971648..7742d16d41 100644 --- a/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractRemoveSessionTest.java +++ b/tests/test-sessions/test-sessions-common/src/main/java/org/eclipse/jetty/server/session/AbstractRemoveSessionTest.java @@ -3,12 +3,16 @@ package org.eclipse.jetty.server.session; import static org.junit.Assert.*; import java.io.IOException; +import java.util.EventListener; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import javax.servlet.http.HttpSessionActivationListener; +import javax.servlet.http.HttpSessionEvent; +import javax.servlet.http.HttpSessionListener; import org.eclipse.jetty.client.ContentExchange; import org.eclipse.jetty.client.HttpClient; @@ -30,6 +34,8 @@ public abstract class AbstractRemoveSessionTest AbstractTestServer server = createServer(0, 1, scavengePeriod); ServletContextHandler context = server.addContext(contextPath); context.addServlet(TestServlet.class, servletMapping); + TestEventListener testListener = new TestEventListener(); + context.getSessionHandler().addEventListener(testListener); server.start(); int port = server.getPort(); try @@ -49,6 +55,8 @@ public abstract class AbstractRemoveSessionTest assertTrue(sessionCookie != null); // Mangle the cookie, replacing Path with $Path, etc. sessionCookie = sessionCookie.replaceFirst("(\\W)(P|p)ath=", "$1\\$Path="); + //ensure sessionCreated listener is called + assertTrue (testListener.isCreated()); //now delete the session exchange = new ContentExchange(true); @@ -58,6 +66,8 @@ public abstract class AbstractRemoveSessionTest client.send(exchange); exchange.waitForDone(); assertEquals(HttpServletResponse.SC_OK,exchange.getResponseStatus()); + //ensure sessionDestroyed listener is called + assertTrue(testListener.isDestroyed()); // The session is not there anymore, but we present an old cookie @@ -106,4 +116,32 @@ public abstract class AbstractRemoveSessionTest } } + public static class TestEventListener implements HttpSessionListener + { + boolean wasCreated; + boolean wasDestroyed; + + public void sessionCreated(HttpSessionEvent se) + { + wasCreated = true; + } + + public void sessionDestroyed(HttpSessionEvent se) + { + wasDestroyed = true; + } + + public boolean isDestroyed() + { + return wasDestroyed; + } + + + public boolean isCreated() + { + return wasCreated; + } + + } + } |