IDEMPIERE-391 Scheduler improvements. Fixed session context management issue.
This commit is contained in:
parent
4ff1981554
commit
16773b295b
|
@ -232,7 +232,8 @@ public final class Env
|
|||
}
|
||||
|
||||
/**
|
||||
* Set Context
|
||||
* Replace the contents of the current session/process context.
|
||||
* Don't use this to setup a new session/process context, use ServerContext.setCurrentInstance instead.
|
||||
* @param ctx context
|
||||
*/
|
||||
public static void setCtx (Properties ctx)
|
||||
|
|
|
@ -23,6 +23,7 @@ import java.text.SimpleDateFormat;
|
|||
import java.util.Properties;
|
||||
import java.util.logging.Level;
|
||||
|
||||
import org.adempiere.util.ServerContext;
|
||||
import org.compiere.model.MAttachment;
|
||||
import org.compiere.model.MClient;
|
||||
import org.compiere.model.MNote;
|
||||
|
@ -106,8 +107,7 @@ public class Scheduler extends AdempiereServer
|
|||
Timestamp ts = new Timestamp(System.currentTimeMillis());
|
||||
SimpleDateFormat dateFormat4Timestamp = new SimpleDateFormat("yyyy-MM-dd");
|
||||
Env.setContext(m_schedulerctx, "#Date", dateFormat4Timestamp.format(ts)+" 00:00:00" ); // JDBC format
|
||||
Properties currentctx = Env.getCtx();
|
||||
Env.setCtx(m_schedulerctx);
|
||||
ServerContext.setCurrentInstance(m_schedulerctx);
|
||||
|
||||
MProcess process = new MProcess(m_schedulerctx, m_model.getAD_Process_ID(), null);
|
||||
try
|
||||
|
@ -129,8 +129,8 @@ public class Scheduler extends AdempiereServer
|
|||
m_trx.close();
|
||||
}
|
||||
|
||||
// Restore system context
|
||||
Env.setCtx(currentctx);
|
||||
// clear thread local context
|
||||
ServerContext.dispose();
|
||||
|
||||
//
|
||||
int no = m_model.deleteLog();
|
||||
|
|
|
@ -18,6 +18,7 @@ import java.util.Properties;
|
|||
|
||||
import org.adempiere.exceptions.AdempiereException;
|
||||
import org.adempiere.util.RestletUtil;
|
||||
import org.adempiere.util.ServerContext;
|
||||
import org.compiere.interfaces.impl.ServerBean;
|
||||
import org.compiere.model.MRole;
|
||||
import org.compiere.process.ProcessInfo;
|
||||
|
@ -61,12 +62,9 @@ public class ExecuteProcessCommand extends ServerResource {
|
|||
}
|
||||
|
||||
ServerBean bean = new ServerBean();
|
||||
//back up properties
|
||||
Properties backup = new Properties();
|
||||
backup.putAll(Env.getCtx());
|
||||
try
|
||||
{
|
||||
Env.setCtx(context);
|
||||
ServerContext.setCurrentInstance(context);
|
||||
if (procedureName != null && procedureName.trim().length() > 0)
|
||||
return bean.dbProcess(context, pi, procedureName);
|
||||
else
|
||||
|
@ -74,7 +72,7 @@ public class ExecuteProcessCommand extends ServerResource {
|
|||
}
|
||||
finally
|
||||
{
|
||||
Env.setCtx(backup);
|
||||
ServerContext.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ import java.util.Properties;
|
|||
|
||||
import org.adempiere.exceptions.AdempiereException;
|
||||
import org.adempiere.util.RestletUtil;
|
||||
import org.adempiere.util.ServerContext;
|
||||
import org.compiere.interfaces.impl.ServerBean;
|
||||
import org.compiere.model.MRole;
|
||||
import org.compiere.util.Env;
|
||||
|
@ -57,17 +58,14 @@ public class ExecuteTaskCommand extends ServerResource {
|
|||
}
|
||||
|
||||
ServerBean bean = new ServerBean();
|
||||
//back up properties
|
||||
Properties backup = new Properties();
|
||||
backup.putAll(Env.getCtx());
|
||||
try
|
||||
{
|
||||
Env.setCtx(context);
|
||||
ServerContext.setCurrentInstance(context);
|
||||
return bean.executeTask(context, AD_Task_ID);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Env.setCtx(backup);
|
||||
ServerContext.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import java.util.Properties;
|
|||
|
||||
import org.adempiere.exceptions.AdempiereException;
|
||||
import org.adempiere.util.RestletUtil;
|
||||
import org.adempiere.util.ServerContext;
|
||||
import org.compiere.interfaces.impl.ServerBean;
|
||||
import org.compiere.model.MRole;
|
||||
import org.compiere.process.ProcessInfo;
|
||||
|
@ -60,17 +61,14 @@ public class ExecuteWorkflowCommand extends ServerResource {
|
|||
}
|
||||
|
||||
ServerBean bean = new ServerBean();
|
||||
//back up properties
|
||||
Properties backup = new Properties();
|
||||
backup.putAll(Env.getCtx());
|
||||
try
|
||||
{
|
||||
Env.setCtx(context);
|
||||
ServerContext.setCurrentInstance(context);
|
||||
return bean.workflow(context, pi, AD_Workflow_ID);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Env.setCtx(backup);
|
||||
ServerContext.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import java.util.Properties;
|
|||
|
||||
import org.adempiere.exceptions.AdempiereException;
|
||||
import org.adempiere.util.RestletUtil;
|
||||
import org.adempiere.util.ServerContext;
|
||||
import org.compiere.interfaces.impl.ServerBean;
|
||||
import org.compiere.util.Env;
|
||||
import org.restlet.representation.Representation;
|
||||
|
@ -57,17 +58,14 @@ public class PostDocumentCommand extends ServerResource {
|
|||
boolean force = (Boolean) entity.get("force");
|
||||
|
||||
ServerBean bean = new ServerBean();
|
||||
//back up properties
|
||||
Properties backup = new Properties();
|
||||
backup.putAll(Env.getCtx());
|
||||
try
|
||||
{
|
||||
Env.setCtx(context);
|
||||
ServerContext.setCurrentInstance(context);
|
||||
msg = bean.postImmediate(context, AD_Client_ID, AD_Table_ID, Record_ID, force);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Env.setCtx(backup);
|
||||
ServerContext.dispose();
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import java.util.Properties;
|
|||
|
||||
import org.adempiere.exceptions.AdempiereException;
|
||||
import org.adempiere.util.RestletUtil;
|
||||
import org.adempiere.util.ServerContext;
|
||||
import org.compiere.interfaces.impl.ServerBean;
|
||||
import org.compiere.util.Env;
|
||||
import org.restlet.representation.Representation;
|
||||
|
@ -53,17 +54,14 @@ public class ResetCacheCommand extends ServerResource {
|
|||
String tableName = (String) entity.get("tableName");
|
||||
|
||||
ServerBean bean = new ServerBean();
|
||||
//back up properties
|
||||
Properties backup = new Properties();
|
||||
backup.putAll(Env.getCtx());
|
||||
try
|
||||
{
|
||||
Env.setCtx(context);
|
||||
ServerContext.setCurrentInstance(context);
|
||||
return bean.cacheReset(context, tableName, Record_ID);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Env.setCtx(backup);
|
||||
ServerContext.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import java.util.Properties;
|
|||
|
||||
import org.adempiere.exceptions.AdempiereException;
|
||||
import org.adempiere.util.RestletUtil;
|
||||
import org.adempiere.util.ServerContext;
|
||||
import org.compiere.interfaces.impl.ServerBean;
|
||||
import org.compiere.util.EMail;
|
||||
import org.compiere.util.Env;
|
||||
|
@ -53,17 +54,14 @@ public class SendEmailCommand extends ServerResource {
|
|||
EMail email = (EMail) entity.get("email");
|
||||
|
||||
ServerBean bean = new ServerBean();
|
||||
//back up properties
|
||||
Properties backup = new Properties();
|
||||
backup.putAll(Env.getCtx());
|
||||
try
|
||||
{
|
||||
Env.setCtx(context);
|
||||
ServerContext.setCurrentInstance(context);
|
||||
return bean.sendEMail(context, email);
|
||||
}
|
||||
finally
|
||||
{
|
||||
Env.setCtx(backup);
|
||||
ServerContext.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import java.text.DecimalFormat;
|
|||
import java.text.SimpleDateFormat;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.adempiere.util.ServerContext;
|
||||
import org.compiere.model.MUser;
|
||||
import org.compiere.util.CLogger;
|
||||
import org.compiere.util.DB;
|
||||
|
@ -113,7 +114,7 @@ public class CompiereService {
|
|||
{
|
||||
CompiereUtil.initWeb();
|
||||
|
||||
Env.setCtx(m_ctx);
|
||||
ServerContext.setCurrentInstance(m_ctx);
|
||||
Env.setContext( m_ctx, "#AD_Language", "en_US" );
|
||||
m_lang = Language.getLanguage("en_US");
|
||||
|
||||
|
|
Loading…
Reference in New Issue