diff --git a/org.adempiere.base/src/org/compiere/util/Msg.java b/org.adempiere.base/src/org/compiere/util/Msg.java index e23d712d75..ad09d39037 100644 --- a/org.adempiere.base/src/org/compiere/util/Msg.java +++ b/org.adempiere.base/src/org/compiere/util/Msg.java @@ -40,7 +40,7 @@ import org.compiere.model.I_AD_Message; public final class Msg { /** Initial size of HashMap */ - private static final int MAP_SIZE = 1500; + private static final int MAP_SIZE = 2000; /** Separator between Msg and optional Tip */ private static final String SEPARATOR = Env.NL + Env.NL; diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java index 72bcdc3a8f..353364c632 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/apps/AEnv.java @@ -206,6 +206,15 @@ public final class AEnv public static void logout() { String sessionID = Env.getContext(Env.getCtx(), "#AD_Session_ID"); + synchronized (windowCache) + { + CCache cache = windowCache.get(sessionID); + if (cache != null) + { + cache.clear(); + CacheMgt.get().unregister(cache); + } + } windowCache.remove(sessionID); // End Session MSession session = MSession.get(Env.getCtx(), false); // finish @@ -291,7 +300,7 @@ public final class AEnv CCache cache = windowCache.get(sessionID); if (cache == null) { - cache = new CCache(I_AD_Window.Table_Name, I_AD_Window.Table_Name+"|GridWindowVO|Session", 10); + cache = new CCache(I_AD_Window.Table_Name, I_AD_Window.Table_Name+"|GridWindowVO|Session|"+sessionID, 10); windowCache.put(sessionID, cache); } cache.put(AD_Window_ID, mWindowVO);