From 2dc3077b004efaa61419299f48e46a9ac2e8c044 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 26 Oct 2012 13:24:54 +0000 Subject: [PATCH] Revert "Call UI.detach in UI cleanup (#9755)" because it breaks logout functionality / redirect while closing the session. See CloseSession test This reverts commit 41fb6006d916c8cb512c9aa6fbf8e5d1f4e377db --- .../vaadin/server/VaadinServiceSession.java | 5 -- server/src/com/vaadin/ui/UI.java | 3 ++ .../vaadin/tests/server/TestUICleanup.java | 48 ------------------- 3 files changed, 3 insertions(+), 53 deletions(-) delete mode 100644 server/tests/src/com/vaadin/tests/server/TestUICleanup.java diff --git a/server/src/com/vaadin/server/VaadinServiceSession.java b/server/src/com/vaadin/server/VaadinServiceSession.java index 92c06cdf46..de5accbfd0 100644 --- a/server/src/com/vaadin/server/VaadinServiceSession.java +++ b/server/src/com/vaadin/server/VaadinServiceSession.java @@ -742,12 +742,7 @@ public class VaadinServiceSession implements HttpSessionBindingListener, Integer id = Integer.valueOf(ui.getUIId()); uIs.remove(id); retainOnRefreshUIs.values().remove(id); - - UI current = UI.getCurrent(); - UI.setCurrent(ui); ui.fireCleanupEvent(); - ui.setSession(null); - UI.setCurrent(current); } /** diff --git a/server/src/com/vaadin/ui/UI.java b/server/src/com/vaadin/ui/UI.java index c7627f71db..d57d38b371 100644 --- a/server/src/com/vaadin/ui/UI.java +++ b/server/src/com/vaadin/ui/UI.java @@ -634,7 +634,10 @@ public abstract class UI extends AbstractComponentContainer implements * For internal use only. */ public void fireCleanupEvent() { + UI current = UI.getCurrent(); + UI.setCurrent(this); fireEvent(new CleanupEvent(this)); + UI.setCurrent(current); } @Override diff --git a/server/tests/src/com/vaadin/tests/server/TestUICleanup.java b/server/tests/src/com/vaadin/tests/server/TestUICleanup.java deleted file mode 100644 index 83d6838bfe..0000000000 --- a/server/tests/src/com/vaadin/tests/server/TestUICleanup.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.vaadin.tests.server; - -import org.easymock.EasyMock; -import org.junit.Test; - -import com.vaadin.server.VaadinRequest; -import com.vaadin.server.VaadinService; -import com.vaadin.server.VaadinServiceSession; -import com.vaadin.ui.UI; -import com.vaadin.ui.UI.CleanupEvent; -import com.vaadin.ui.UI.CleanupListener; - -public class TestUICleanup { - - @Test - public void uiDetach() { - VaadinService service = EasyMock.createMock(VaadinService.class); - - UI ui = EasyMock.createMock(UI.class); - ui.setSession(null); - ui.detach(); - ui.fireCleanupEvent(); - EasyMock.expect(ui.getUIId()).andReturn(1); - - EasyMock.replay(service, ui); - - VaadinServiceSession session = new VaadinServiceSession(service); - - session.cleanupUI(ui); - } - - @Test - public void uiCleanupListeners() { - CleanupListener listener = EasyMock.createMock(CleanupListener.class); - listener.cleanup(EasyMock.anyObject(CleanupEvent.class)); - - EasyMock.replay(listener); - - UI ui = new UI() { - @Override - protected void init(VaadinRequest request) { - } - }; - - ui.addCleanupListener(listener); - ui.fireCleanupEvent(); - } -} -- 2.39.5