diff --git a/org.adempiere.base/src/org/adempiere/util/ServerContext.java b/org.adempiere.base/src/org/adempiere/util/ServerContext.java index 1b35e56730..a410e4ffd7 100644 --- a/org.adempiere.base/src/org/adempiere/util/ServerContext.java +++ b/org.adempiere.base/src/org/adempiere/util/ServerContext.java @@ -19,9 +19,6 @@ package org.adempiere.util; import java.util.Properties; -import org.compiere.util.Env; -import org.compiere.util.Language; - /** * * @author Ashley G Ramdass @@ -43,7 +40,6 @@ public final class ServerContext protected Properties initialValue() { Properties ctx = new Properties(); - ctx.put(Env.LANGUAGE, Language.getBaseAD_Language()); return ctx; } }; diff --git a/org.adempiere.base/src/org/adempiere/util/ServerContextCallback.java b/org.adempiere.base/src/org/adempiere/util/ServerContextCallback.java index 3e6c089f81..6653ad6ec8 100644 --- a/org.adempiere.base/src/org/adempiere/util/ServerContextCallback.java +++ b/org.adempiere.base/src/org/adempiere/util/ServerContextCallback.java @@ -41,6 +41,15 @@ public class ServerContextCallback implements InvocationHandler, Serializable { types[1] == String.class && args != null && args[0] instanceof String && args[1] instanceof String) return context.getProperty((String)args[0], (String)args[1]); + } else if (method.getName().equals("setProperty")) { + Class[] types = method.getParameterTypes(); + if (types != null && types.length == 2 && types[0] == String.class && + types[1] == String.class && args != null && args[0] instanceof String && + args[1] instanceof String) + { + context.setProperty((String)args[0], (String)args[1]); + return null; + } } Method m = context.getClass().getMethod(method.getName(), method.getParameterTypes()); return m.invoke(context, args); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java index 180503f8f5..85da198e7c 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/session/SessionContextListener.java @@ -129,6 +129,11 @@ public class SessionContextListener implements ExecutionInit, public void prepare(Component comp, Event evt) { //in servlet thread + //check is thread local context have been setup + if (ServerContext.getCurrentInstance().isEmpty()) + { + setupExecutionContextFromSession(Executions.getCurrent()); + } _ctx = ServerContext.getCurrentInstance(); } @@ -157,6 +162,11 @@ public class SessionContextListener implements ExecutionInit, public void beforeResume(Component comp, Event evt) { //in servlet thread + //check is thread local context have been setup + if (ServerContext.getCurrentInstance().isEmpty()) + { + setupExecutionContextFromSession(Executions.getCurrent()); + } _ctx = ServerContext.getCurrentInstance(); } @@ -247,6 +257,5 @@ public class SessionContextListener implements ExecutionInit, { //in event processing thread _ctx = ServerContext.getCurrentInstance(); -// ServerContext.dispose(); } }