Program: 80032
Project: 80032
Buggy source:
/** 
 * Start-up method for this instance of the data dictionary.
 * @param startParams	The start-up parameters
 * @exception StandardException	Thrown if the module fails to start
 */
public void boot(boolean create,Properties startParams) throws StandardException {
  softwareVersion=new DD_Version(this,DataDictionary.DD_VERSION_DERBY_10_9);
  startupParameters=startParams;
  uuidFactory=Monitor.getMonitor().getUUIDFactory();
  engineType=Monitor.getEngineType(startParams);
  collationTypeOfSystemSchemas=StringDataValue.COLLATION_TYPE_UCS_BASIC;
  getBuiltinSystemSchemas();
  LanguageConnectionFactory langConnFactory=(LanguageConnectionFactory)Monitor.bootServiceModule(create,this,LanguageConnectionFactory.MODULE,startParams);
  dvf=langConnFactory.getDataValueFactory();
  exFactory=(ExecutionFactory)Monitor.bootServiceModule(create,this,ExecutionFactory.MODULE,startParams);
  initializeCatalogInfo();
  booting=true;
  if (dataDescriptorGenerator == null) {
    dataDescriptorGenerator=new DataDescriptorGenerator(this);
  }
  if (!create) {
    coreInfo[SYSTABLES_CORE_NUM].setHeapConglomerate(getBootParameter(startParams,CFG_SYSTABLES_ID,true));
    coreInfo[SYSTABLES_CORE_NUM].setIndexConglomerate(SYSTABLESRowFactory.SYSTABLES_INDEX1_ID,getBootParameter(startParams,CFG_SYSTABLES_INDEX1_ID,true));
    coreInfo[SYSTABLES_CORE_NUM].setIndexConglomerate(SYSTABLESRowFactory.SYSTABLES_INDEX2_ID,getBootParameter(startParams,CFG_SYSTABLES_INDEX2_ID,true));
    coreInfo[SYSCOLUMNS_CORE_NUM].setHeapConglomerate(getBootParameter(startParams,CFG_SYSCOLUMNS_ID,true));
    coreInfo[SYSCOLUMNS_CORE_NUM].setIndexConglomerate(SYSCOLUMNSRowFactory.SYSCOLUMNS_INDEX1_ID,getBootParameter(startParams,CFG_SYSCOLUMNS_INDEX1_ID,true));
    coreInfo[SYSCOLUMNS_CORE_NUM].setIndexConglomerate(SYSCOLUMNSRowFactory.SYSCOLUMNS_INDEX2_ID,getBootParameter(startParams,CFG_SYSCOLUMNS_INDEX2_ID,false));
    coreInfo[SYSCONGLOMERATES_CORE_NUM].setHeapConglomerate(getBootParameter(startParams,CFG_SYSCONGLOMERATES_ID,true));
    coreInfo[SYSCONGLOMERATES_CORE_NUM].setIndexConglomerate(SYSCONGLOMERATESRowFactory.SYSCONGLOMERATES_INDEX1_ID,getBootParameter(startParams,CFG_SYSCONGLOMERATES_INDEX1_ID,true));
    coreInfo[SYSCONGLOMERATES_CORE_NUM].setIndexConglomerate(SYSCONGLOMERATESRowFactory.SYSCONGLOMERATES_INDEX2_ID,getBootParameter(startParams,CFG_SYSCONGLOMERATES_INDEX2_ID,true));
    coreInfo[SYSCONGLOMERATES_CORE_NUM].setIndexConglomerate(SYSCONGLOMERATESRowFactory.SYSCONGLOMERATES_INDEX3_ID,getBootParameter(startParams,CFG_SYSCONGLOMERATES_INDEX3_ID,true));
    coreInfo[SYSSCHEMAS_CORE_NUM].setHeapConglomerate(getBootParameter(startParams,CFG_SYSSCHEMAS_ID,true));
    coreInfo[SYSSCHEMAS_CORE_NUM].setIndexConglomerate(SYSSCHEMASRowFactory.SYSSCHEMAS_INDEX1_ID,getBootParameter(startParams,CFG_SYSSCHEMAS_INDEX1_ID,true));
    coreInfo[SYSSCHEMAS_CORE_NUM].setIndexConglomerate(SYSSCHEMASRowFactory.SYSSCHEMAS_INDEX2_ID,getBootParameter(startParams,CFG_SYSSCHEMAS_INDEX2_ID,true));
  }
  String value=startParams.getProperty(Property.LANG_TD_CACHE_SIZE);
  tdCacheSize=PropertyUtil.intPropertyValue(Property.LANG_TD_CACHE_SIZE,value,0,Integer.MAX_VALUE,Property.LANG_TD_CACHE_SIZE_DEFAULT);
  value=startParams.getProperty(Property.LANG_SPS_CACHE_SIZE);
  stmtCacheSize=PropertyUtil.intPropertyValue(Property.LANG_SPS_CACHE_SIZE,value,0,Integer.MAX_VALUE,Property.LANG_SPS_CACHE_SIZE_DEFAULT);
  value=startParams.getProperty(Property.LANG_SEQGEN_CACHE_SIZE);
  seqgenCacheSize=PropertyUtil.intPropertyValue(Property.LANG_SEQGEN_CACHE_SIZE,value,0,Integer.MAX_VALUE,Property.LANG_SEQGEN_CACHE_SIZE_DEFAULT);
  value=startParams.getProperty(Property.LANG_PERMISSIONS_CACHE_SIZE);
  permissionsCacheSize=PropertyUtil.intPropertyValue(Property.LANG_PERMISSIONS_CACHE_SIZE,value,0,Integer.MAX_VALUE,Property.LANG_PERMISSIONS_CACHE_SIZE_DEFAULT);
  indexStatsUpdateDisabled=!PropertyUtil.getSystemBoolean(Property.STORAGE_AUTO_INDEX_STATS,true);
  indexStatsUpdateLogging=PropertyUtil.getSystemBoolean(Property.STORAGE_AUTO_INDEX_STATS_LOGGING);
  indexStatsUpdateTracing=PropertyUtil.getSystemProperty(Property.STORAGE_AUTO_INDEX_STATS_TRACING,"String_Node_Str");
  CacheFactory cf=(CacheFactory)Monitor.startSystemModule(org.apache.derby.iapi.reference.Module.CacheFactory);
  OIDTdCache=cf.newCacheManager(this,"String_Node_Str",tdCacheSize,tdCacheSize);
  nameTdCache=cf.newCacheManager(this,"String_Node_Str",tdCacheSize,tdCacheSize);
  if (stmtCacheSize > 0) {
    spsNameCache=cf.newCacheManager(this,"String_Node_Str",stmtCacheSize,stmtCacheSize);
    spsIdHash=new Hashtable(stmtCacheSize);
  }
  sequenceGeneratorCache=cf.newCacheManager(this,"String_Node_Str",seqgenCacheSize,seqgenCacheSize);
  cacheCoordinator=new ShExLockable();
  af=(AccessFactory)Monitor.findServiceModule(this,AccessFactory.MODULE);
  lockFactory=af.getLockFactory();
  ContextService csf=ContextService.getFactory();
  ContextManager cm=csf.getCurrentContextManager();
  if (SanityManager.DEBUG)   SanityManager.ASSERT((cm != null),"String_Node_Str");
  bootingTC=null;
  try {
    bootingTC=af.getTransaction(cm);
    exFactory.newExecutionContext(cm);
    DataDescriptorGenerator ddg=getDataDescriptorGenerator();
    String userDefinedCollation;
    if (create) {
      userDefinedCollation=startParams.getProperty(Attribute.COLLATION,Property.UCS_BASIC_COLLATION);
      bootingTC.setProperty(Property.COLLATION,userDefinedCollation,true);
    }
 else {
      userDefinedCollation=startParams.getProperty(Property.COLLATION,Property.UCS_BASIC_COLLATION);
    }
    collationTypeOfUserSchemas=DataTypeDescriptor.getCollationType(userDefinedCollation);
    if (SanityManager.DEBUG)     SanityManager.ASSERT((collationTypeOfUserSchemas != -1),"String_Node_Str" + userDefinedCollation);
    declaredGlobalTemporaryTablesSchemaDesc=newDeclaredGlobalTemporaryTablesSchemaDesc(SchemaDescriptor.STD_DECLARED_GLOBAL_TEMPORARY_TABLES_SCHEMA_NAME);
    boolean nativeAuthenticationEnabled=PropertyUtil.nativeAuthenticationEnabled(startParams);
    if (create) {
      String userName=IdUtil.getUserNameFromURLProps(startParams);
      authorizationDatabaseOwner=IdUtil.getUserAuthorizationId(userName);
      HashSet newlyCreatedRoutines=new HashSet();
      createDictionaryTables(startParams,bootingTC,ddg);
      create_SYSIBM_procedures(bootingTC,newlyCreatedRoutines);
      createSystemSps(bootingTC);
      create_SYSCS_procedures(bootingTC,newlyCreatedRoutines);
      grantPublicAccessToSystemRoutines(newlyCreatedRoutines,bootingTC,authorizationDatabaseOwner);
      dictionaryVersion=softwareVersion;
      bootingTC.setProperty(DataDictionary.CORE_DATA_DICTIONARY_VERSION,dictionaryVersion,true);
      bootingTC.setProperty(DataDictionary.CREATE_DATA_DICTIONARY_VERSION,dictionaryVersion,true);
      if (PropertyUtil.getSystemBoolean(Property.SQL_AUTHORIZATION_PROPERTY)) {
        bootingTC.setProperty(Property.SQL_AUTHORIZATION_PROPERTY,"String_Node_Str",true);
      }
      if (PropertyUtil.getSystemBoolean(Property.SQL_AUTHORIZATION_PROPERTY) || nativeAuthenticationEnabled) {
        usesSqlAuthorization=true;
      }
      bootingTC.setProperty(Property.AUTHENTICATION_BUILTIN_ALGORITHM,findDefaultBuiltinAlgorithm(),false);
    }
 else {
      loadDictionaryTables(bootingTC,ddg,startParams);
      String dbIndexStatsUpdateAuto=PropertyUtil.getDatabaseProperty(bootingTC,Property.STORAGE_AUTO_INDEX_STATS);
      if (dbIndexStatsUpdateAuto != null) {
        indexStatsUpdateDisabled=!Boolean.valueOf(dbIndexStatsUpdateAuto).booleanValue();
      }
      String dbEnableIndexStatsLogging=PropertyUtil.getDatabaseProperty(bootingTC,Property.STORAGE_AUTO_INDEX_STATS_LOGGING);
      if (dbEnableIndexStatsLogging != null) {
        indexStatsUpdateLogging=Boolean.valueOf(dbEnableIndexStatsLogging).booleanValue();
      }
      String dbEnableIndexStatsTracing=PropertyUtil.getDatabaseProperty(bootingTC,Property.STORAGE_AUTO_INDEX_STATS_TRACING);
      if (dbEnableIndexStatsTracing != null) {
        if (!(dbEnableIndexStatsTracing.equalsIgnoreCase("String_Node_Str") || dbEnableIndexStatsTracing.equalsIgnoreCase("String_Node_Str") || dbEnableIndexStatsTracing.equalsIgnoreCase("String_Node_Str")|| dbEnableIndexStatsTracing.equalsIgnoreCase("String_Node_Str"))) {
          indexStatsUpdateTracing="String_Node_Str";
        }
 else {
          indexStatsUpdateTracing=dbEnableIndexStatsTracing;
        }
      }
      String sqlAuth=PropertyUtil.getDatabaseProperty(bootingTC,Property.SQL_AUTHORIZATION_PROPERTY);
      if (Boolean.valueOf(startParams.getProperty(Attribute.SOFT_UPGRADE_NO_FEATURE_CHECK)).booleanValue()) {
        if (dictionaryVersion.majorVersionNumber >= DataDictionary.DD_VERSION_DERBY_10_2) {
          usesSqlAuthorization=Boolean.valueOf(sqlAuth).booleanValue() || nativeAuthenticationEnabled;
        }
      }
 else {
        if (Boolean.valueOf(sqlAuth).booleanValue() || nativeAuthenticationEnabled) {
          checkVersion(DataDictionary.DD_VERSION_DERBY_10_2,"String_Node_Str");
          usesSqlAuthorization=true;
        }
      }
    }
    if (SanityManager.DEBUG)     SanityManager.ASSERT((authorizationDatabaseOwner != null),"String_Node_Str");
    bootingTC.commit();
    cm.getContext(ExecutionContext.CONTEXT_ID).popMe();
  }
  finally {
    if (bootingTC != null) {
      bootingTC.destroy();
      bootingTC=null;
    }
  }
  setDependencyManager();
  booting=false;
}

Fixed version (ground truth):
/** 
 * Start-up method for this instance of the data dictionary.
 * @param startParams	The start-up parameters
 * @exception StandardException	Thrown if the module fails to start
 */
public void boot(boolean create,Properties startParams) throws StandardException {
  softwareVersion=new DD_Version(this,DataDictionary.DD_VERSION_DERBY_10_9);
  startupParameters=startParams;
  uuidFactory=Monitor.getMonitor().getUUIDFactory();
  engineType=Monitor.getEngineType(startParams);
  collationTypeOfSystemSchemas=StringDataValue.COLLATION_TYPE_UCS_BASIC;
  getBuiltinSystemSchemas();
  LanguageConnectionFactory langConnFactory=(LanguageConnectionFactory)Monitor.bootServiceModule(create,this,LanguageConnectionFactory.MODULE,startParams);
  dvf=langConnFactory.getDataValueFactory();
  exFactory=(ExecutionFactory)Monitor.bootServiceModule(create,this,ExecutionFactory.MODULE,startParams);
  initializeCatalogInfo();
  booting=true;
  if (dataDescriptorGenerator == null) {
    dataDescriptorGenerator=new DataDescriptorGenerator(this);
  }
  if (!create) {
    coreInfo[SYSTABLES_CORE_NUM].setHeapConglomerate(getBootParameter(startParams,CFG_SYSTABLES_ID,true));
    coreInfo[SYSTABLES_CORE_NUM].setIndexConglomerate(SYSTABLESRowFactory.SYSTABLES_INDEX1_ID,getBootParameter(startParams,CFG_SYSTABLES_INDEX1_ID,true));
    coreInfo[SYSTABLES_CORE_NUM].setIndexConglomerate(SYSTABLESRowFactory.SYSTABLES_INDEX2_ID,getBootParameter(startParams,CFG_SYSTABLES_INDEX2_ID,true));
    coreInfo[SYSCOLUMNS_CORE_NUM].setHeapConglomerate(getBootParameter(startParams,CFG_SYSCOLUMNS_ID,true));
    coreInfo[SYSCOLUMNS_CORE_NUM].setIndexConglomerate(SYSCOLUMNSRowFactory.SYSCOLUMNS_INDEX1_ID,getBootParameter(startParams,CFG_SYSCOLUMNS_INDEX1_ID,true));
    coreInfo[SYSCOLUMNS_CORE_NUM].setIndexConglomerate(SYSCOLUMNSRowFactory.SYSCOLUMNS_INDEX2_ID,getBootParameter(startParams,CFG_SYSCOLUMNS_INDEX2_ID,false));
    coreInfo[SYSCONGLOMERATES_CORE_NUM].setHeapConglomerate(getBootParameter(startParams,CFG_SYSCONGLOMERATES_ID,true));
    coreInfo[SYSCONGLOMERATES_CORE_NUM].setIndexConglomerate(SYSCONGLOMERATESRowFactory.SYSCONGLOMERATES_INDEX1_ID,getBootParameter(startParams,CFG_SYSCONGLOMERATES_INDEX1_ID,true));
    coreInfo[SYSCONGLOMERATES_CORE_NUM].setIndexConglomerate(SYSCONGLOMERATESRowFactory.SYSCONGLOMERATES_INDEX2_ID,getBootParameter(startParams,CFG_SYSCONGLOMERATES_INDEX2_ID,true));
    coreInfo[SYSCONGLOMERATES_CORE_NUM].setIndexConglomerate(SYSCONGLOMERATESRowFactory.SYSCONGLOMERATES_INDEX3_ID,getBootParameter(startParams,CFG_SYSCONGLOMERATES_INDEX3_ID,true));
    coreInfo[SYSSCHEMAS_CORE_NUM].setHeapConglomerate(getBootParameter(startParams,CFG_SYSSCHEMAS_ID,true));
    coreInfo[SYSSCHEMAS_CORE_NUM].setIndexConglomerate(SYSSCHEMASRowFactory.SYSSCHEMAS_INDEX1_ID,getBootParameter(startParams,CFG_SYSSCHEMAS_INDEX1_ID,true));
    coreInfo[SYSSCHEMAS_CORE_NUM].setIndexConglomerate(SYSSCHEMASRowFactory.SYSSCHEMAS_INDEX2_ID,getBootParameter(startParams,CFG_SYSSCHEMAS_INDEX2_ID,true));
  }
  String value=startParams.getProperty(Property.LANG_TD_CACHE_SIZE);
  tdCacheSize=PropertyUtil.intPropertyValue(Property.LANG_TD_CACHE_SIZE,value,0,Integer.MAX_VALUE,Property.LANG_TD_CACHE_SIZE_DEFAULT);
  value=startParams.getProperty(Property.LANG_SPS_CACHE_SIZE);
  stmtCacheSize=PropertyUtil.intPropertyValue(Property.LANG_SPS_CACHE_SIZE,value,0,Integer.MAX_VALUE,Property.LANG_SPS_CACHE_SIZE_DEFAULT);
  value=startParams.getProperty(Property.LANG_SEQGEN_CACHE_SIZE);
  seqgenCacheSize=PropertyUtil.intPropertyValue(Property.LANG_SEQGEN_CACHE_SIZE,value,0,Integer.MAX_VALUE,Property.LANG_SEQGEN_CACHE_SIZE_DEFAULT);
  value=startParams.getProperty(Property.LANG_PERMISSIONS_CACHE_SIZE);
  permissionsCacheSize=PropertyUtil.intPropertyValue(Property.LANG_PERMISSIONS_CACHE_SIZE,value,0,Integer.MAX_VALUE,Property.LANG_PERMISSIONS_CACHE_SIZE_DEFAULT);
  indexStatsUpdateDisabled=!PropertyUtil.getSystemBoolean(Property.STORAGE_AUTO_INDEX_STATS,true);
  indexStatsUpdateLogging=PropertyUtil.getSystemBoolean(Property.STORAGE_AUTO_INDEX_STATS_LOGGING);
  indexStatsUpdateTracing=PropertyUtil.getSystemProperty(Property.STORAGE_AUTO_INDEX_STATS_TRACING,"String_Node_Str");
  CacheFactory cf=(CacheFactory)Monitor.startSystemModule(org.apache.derby.iapi.reference.Module.CacheFactory);
  OIDTdCache=cf.newCacheManager(this,"String_Node_Str",tdCacheSize,tdCacheSize);
  nameTdCache=cf.newCacheManager(this,"String_Node_Str",tdCacheSize,tdCacheSize);
  if (stmtCacheSize > 0) {
    spsNameCache=cf.newCacheManager(this,"String_Node_Str",stmtCacheSize,stmtCacheSize);
    spsIdHash=new Hashtable(stmtCacheSize);
  }
  sequenceGeneratorCache=cf.newCacheManager(this,"String_Node_Str",seqgenCacheSize,seqgenCacheSize);
  sequenceIDs=new HashMap();
  cacheCoordinator=new ShExLockable();
  af=(AccessFactory)Monitor.findServiceModule(this,AccessFactory.MODULE);
  lockFactory=af.getLockFactory();
  ContextService csf=ContextService.getFactory();
  ContextManager cm=csf.getCurrentContextManager();
  if (SanityManager.DEBUG)   SanityManager.ASSERT((cm != null),"String_Node_Str");
  bootingTC=null;
  try {
    bootingTC=af.getTransaction(cm);
    exFactory.newExecutionContext(cm);
    DataDescriptorGenerator ddg=getDataDescriptorGenerator();
    String userDefinedCollation;
    if (create) {
      userDefinedCollation=startParams.getProperty(Attribute.COLLATION,Property.UCS_BASIC_COLLATION);
      bootingTC.setProperty(Property.COLLATION,userDefinedCollation,true);
    }
 else {
      userDefinedCollation=startParams.getProperty(Property.COLLATION,Property.UCS_BASIC_COLLATION);
    }
    collationTypeOfUserSchemas=DataTypeDescriptor.getCollationType(userDefinedCollation);
    if (SanityManager.DEBUG)     SanityManager.ASSERT((collationTypeOfUserSchemas != -1),"String_Node_Str" + userDefinedCollation);
    declaredGlobalTemporaryTablesSchemaDesc=newDeclaredGlobalTemporaryTablesSchemaDesc(SchemaDescriptor.STD_DECLARED_GLOBAL_TEMPORARY_TABLES_SCHEMA_NAME);
    boolean nativeAuthenticationEnabled=PropertyUtil.nativeAuthenticationEnabled(startParams);
    if (create) {
      String userName=IdUtil.getUserNameFromURLProps(startParams);
      authorizationDatabaseOwner=IdUtil.getUserAuthorizationId(userName);
      HashSet newlyCreatedRoutines=new HashSet();
      createDictionaryTables(startParams,bootingTC,ddg);
      create_SYSIBM_procedures(bootingTC,newlyCreatedRoutines);
      createSystemSps(bootingTC);
      create_SYSCS_procedures(bootingTC,newlyCreatedRoutines);
      grantPublicAccessToSystemRoutines(newlyCreatedRoutines,bootingTC,authorizationDatabaseOwner);
      dictionaryVersion=softwareVersion;
      bootingTC.setProperty(DataDictionary.CORE_DATA_DICTIONARY_VERSION,dictionaryVersion,true);
      bootingTC.setProperty(DataDictionary.CREATE_DATA_DICTIONARY_VERSION,dictionaryVersion,true);
      if (PropertyUtil.getSystemBoolean(Property.SQL_AUTHORIZATION_PROPERTY)) {
        bootingTC.setProperty(Property.SQL_AUTHORIZATION_PROPERTY,"String_Node_Str",true);
      }
      if (PropertyUtil.getSystemBoolean(Property.SQL_AUTHORIZATION_PROPERTY) || nativeAuthenticationEnabled) {
        usesSqlAuthorization=true;
      }
      bootingTC.setProperty(Property.AUTHENTICATION_BUILTIN_ALGORITHM,findDefaultBuiltinAlgorithm(),false);
    }
 else {
      loadDictionaryTables(bootingTC,ddg,startParams);
      String dbIndexStatsUpdateAuto=PropertyUtil.getDatabaseProperty(bootingTC,Property.STORAGE_AUTO_INDEX_STATS);
      if (dbIndexStatsUpdateAuto != null) {
        indexStatsUpdateDisabled=!Boolean.valueOf(dbIndexStatsUpdateAuto).booleanValue();
      }
      String dbEnableIndexStatsLogging=PropertyUtil.getDatabaseProperty(bootingTC,Property.STORAGE_AUTO_INDEX_STATS_LOGGING);
      if (dbEnableIndexStatsLogging != null) {
        indexStatsUpdateLogging=Boolean.valueOf(dbEnableIndexStatsLogging).booleanValue();
      }
      String dbEnableIndexStatsTracing=PropertyUtil.getDatabaseProperty(bootingTC,Property.STORAGE_AUTO_INDEX_STATS_TRACING);
      if (dbEnableIndexStatsTracing != null) {
        if (!(dbEnableIndexStatsTracing.equalsIgnoreCase("String_Node_Str") || dbEnableIndexStatsTracing.equalsIgnoreCase("String_Node_Str") || dbEnableIndexStatsTracing.equalsIgnoreCase("String_Node_Str")|| dbEnableIndexStatsTracing.equalsIgnoreCase("String_Node_Str"))) {
          indexStatsUpdateTracing="String_Node_Str";
        }
 else {
          indexStatsUpdateTracing=dbEnableIndexStatsTracing;
        }
      }
      String sqlAuth=PropertyUtil.getDatabaseProperty(bootingTC,Property.SQL_AUTHORIZATION_PROPERTY);
      if (Boolean.valueOf(startParams.getProperty(Attribute.SOFT_UPGRADE_NO_FEATURE_CHECK)).booleanValue()) {
        if (dictionaryVersion.majorVersionNumber >= DataDictionary.DD_VERSION_DERBY_10_2) {
          usesSqlAuthorization=Boolean.valueOf(sqlAuth).booleanValue() || nativeAuthenticationEnabled;
        }
      }
 else {
        if (Boolean.valueOf(sqlAuth).booleanValue() || nativeAuthenticationEnabled) {
          checkVersion(DataDictionary.DD_VERSION_DERBY_10_2,"String_Node_Str");
          usesSqlAuthorization=true;
        }
      }
    }
    if (SanityManager.DEBUG)     SanityManager.ASSERT((authorizationDatabaseOwner != null),"String_Node_Str");
    bootingTC.commit();
    cm.getContext(ExecutionContext.CONTEXT_ID).popMe();
  }
  finally {
    if (bootingTC != null) {
      bootingTC.destroy();
      bootingTC=null;
    }
  }
  setDependencyManager();
  booting=false;
}