diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java index 5baca6bceb..9554fb8e37 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/AdempiereWebUI.java @@ -190,10 +190,10 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb final Session session = desktop.getSession(); //clear context, invalidate session - Env.getCtx().clear(); - destroySession(session); - desktop.setAttribute(DESKTOP_SESSION_INVALIDATED_ATTR, Boolean.TRUE); + Env.getCtx().clear(); Adempiere.getThreadPoolExecutor().schedule(() -> { + ((SessionCtrl)session).invalidateNow(); + desktop.setAttribute(DESKTOP_SESSION_INVALIDATED_ATTR, Boolean.TRUE); try { desktopCache.removeDesktop(desktop); } catch (Throwable t) { @@ -415,7 +415,7 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb //clear context, invalidate session Env.getCtx().clear(); - destroySession(session); + afterLogout(session); desktop.setAttribute(DESKTOP_SESSION_INVALIDATED_ATTR, Boolean.TRUE); //redirect to login page @@ -429,7 +429,7 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb } } - private void destroySession(final Session session) { + private void afterLogout(final Session session) { try { ((SessionCtrl)session).onDestroyed(); } catch (Throwable t) { @@ -443,8 +443,6 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb */ public void logoutAfterTabDestroyed(){ Desktop desktop = Executions.getCurrent().getDesktop(); - if (desktop.isServerPushEnabled()) - desktop.enableServerPush(false); DesktopWatchDog.removeDesktop(desktop); Session session = logout0(); @@ -453,7 +451,7 @@ public class AdempiereWebUI extends Window implements EventListener, IWeb Env.getCtx().clear(); SessionCtrl ctrl = (SessionCtrl) session; if (!ctrl.isInvalidated() && session.getNativeSession() != null) - destroySession(session); + afterLogout(session); }