//AppListenerSupport listener = (AppListenerSupport) config.get ApplicationListener();
KeyLock<String> lock = config.getContextLock();
String name=StringUtil.emptyIfNull(applicationContext.getName());
String token=name+":"+getCFID();
Lock tokenLock = lock.lock(token,getRequestTimeout());
//print.o("outer-lock :"+token);
try {
// check session before executing any code
initSession=applicationContext.isSetSessionManagement() && listener.hasOnSessionStart(this) && !scopeContext.hasExistingSessionScope(this);
// init application
Lock nameLock = lock.lock(name,getRequestTimeout());
//print.o("inner-lock :"+token);
try {
RefBoolean isNew=new RefBooleanImpl(false);
application=scopeContext.getApplicationScope(this,isNew);// this is needed that the application scope is initilized
if(isNew.toBooleanValue()) {