- context not correct after closing of modal dialog
This commit is contained in:
parent
4d7e5ff854
commit
0c2b28f5e5
|
@ -72,6 +72,7 @@ public class SessionContextListener implements ExecutionInit,
|
||||||
}
|
}
|
||||||
serverContext.clear();
|
serverContext.clear();
|
||||||
serverContext.putAll(ctx);
|
serverContext.putAll(ctx);
|
||||||
|
exec.setAttribute(SESSION_CTX, serverContext);
|
||||||
|
|
||||||
//set locale
|
//set locale
|
||||||
Locales.setThreadLocal(Env.getLanguage(ctx).getLocale());
|
Locales.setThreadLocal(Env.getLanguage(ctx).getLocale());
|
||||||
|
@ -88,7 +89,18 @@ public class SessionContextListener implements ExecutionInit,
|
||||||
{
|
{
|
||||||
if (parent == null)
|
if (parent == null)
|
||||||
{
|
{
|
||||||
|
Properties ctx = (Properties)exec.getDesktop().getSession().getAttribute(SESSION_CTX);
|
||||||
|
if (ctx != null)
|
||||||
|
{
|
||||||
|
ServerContext serverContext = (ServerContext) Executions.getCurrent().getAttribute(SESSION_CTX);
|
||||||
|
if (serverContext != null)
|
||||||
|
{
|
||||||
|
ctx.clear();
|
||||||
|
ctx.putAll(serverContext);
|
||||||
|
}
|
||||||
|
}
|
||||||
ServerContext.dispose();
|
ServerContext.dispose();
|
||||||
|
exec.removeAttribute(SESSION_CTX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,26 +120,18 @@ public class SessionContextListener implements ExecutionInit,
|
||||||
*/
|
*/
|
||||||
public boolean init(Component comp, Event evt)
|
public boolean init(Component comp, Event evt)
|
||||||
{
|
{
|
||||||
//setup context
|
ServerContext serverContext = (ServerContext) Executions.getCurrent().getAttribute(SESSION_CTX);
|
||||||
Properties ctx = (Properties)Executions.getCurrent().getDesktop().getSession().getAttribute(SESSION_CTX);
|
|
||||||
if (ctx == null)
|
|
||||||
{
|
|
||||||
ctx = new Properties();
|
|
||||||
HttpSession session = (HttpSession)Executions.getCurrent().getDesktop().getSession().getNativeSession();
|
|
||||||
ctx.setProperty(SERVLET_SESSION_ID, session.getId());
|
|
||||||
Executions.getCurrent().getDesktop().getSession().setAttribute(SESSION_CTX, ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
ServerContext serverContext = ServerContext.getCurrentInstance();
|
|
||||||
if (serverContext == null)
|
if (serverContext == null)
|
||||||
{
|
{
|
||||||
serverContext = ServerContext.newInstance();
|
serverContext = ServerContext.newInstance();
|
||||||
}
|
}
|
||||||
serverContext.clear();
|
else
|
||||||
serverContext.putAll(ctx);
|
{
|
||||||
|
ServerContext.setCurrentInstance(serverContext);
|
||||||
|
}
|
||||||
|
|
||||||
//set locale
|
//set locale
|
||||||
Locales.setThreadLocal(Env.getLanguage(ctx).getLocale());
|
Locales.setThreadLocal(Env.getLanguage(serverContext).getLocale());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -148,19 +152,18 @@ public class SessionContextListener implements ExecutionInit,
|
||||||
*/
|
*/
|
||||||
public void afterResume(Component comp, Event evt)
|
public void afterResume(Component comp, Event evt)
|
||||||
{
|
{
|
||||||
//make sure context is correct
|
ServerContext serverContext = (ServerContext) Executions.getCurrent().getAttribute(SESSION_CTX);
|
||||||
Properties ctx = (Properties)Executions.getCurrent().getDesktop().getSession().getAttribute(SESSION_CTX);
|
if (serverContext == null)
|
||||||
if (ctx != null)
|
|
||||||
{
|
{
|
||||||
ServerContext serverContext = ServerContext.getCurrentInstance();
|
|
||||||
if (serverContext == null) {
|
|
||||||
serverContext = ServerContext.newInstance();
|
serverContext = ServerContext.newInstance();
|
||||||
serverContext.putAll(ctx);
|
|
||||||
} else {
|
|
||||||
serverContext.clear();
|
|
||||||
serverContext.putAll(ctx);
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ServerContext.setCurrentInstance(serverContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//set locale
|
||||||
|
Locales.setThreadLocal(Env.getLanguage(serverContext).getLocale());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -180,17 +183,6 @@ public class SessionContextListener implements ExecutionInit,
|
||||||
*/
|
*/
|
||||||
public void cleanup(Component comp, Event evt, List errs) throws Exception
|
public void cleanup(Component comp, Event evt, List errs) throws Exception
|
||||||
{
|
{
|
||||||
//update session context
|
|
||||||
Properties ctx = (Properties) Executions.getCurrent().getDesktop().getSession().getAttribute(SESSION_CTX);
|
|
||||||
ServerContext serverContext = ServerContext.getCurrentInstance();
|
|
||||||
|
|
||||||
if (ctx != null && serverContext != null
|
|
||||||
&& ctx.getProperty(SERVLET_SESSION_ID).equals(serverContext.getProperty(SERVLET_SESSION_ID)))
|
|
||||||
{
|
|
||||||
ctx.clear();
|
|
||||||
ctx.putAll(serverContext);
|
|
||||||
}
|
|
||||||
|
|
||||||
ServerContext.dispose();
|
ServerContext.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue