Program: 160648
Project: 160648
Buggy source:
public void start() throws DatabaseInitException, BimDatabaseException, PluginException, DatabaseRestartRequiredException, ServerException {
  try {
    pluginManager.initAllLoadedPlugins();
    serverStartTime=new GregorianCalendar();
    longActionManager=new LongActionManager();
    Set<Ifc2x3Package> packages=CollectionUtils.singleSet(Ifc2x3Package.eINSTANCE);
    templateEngine=new TemplateEngine();
    templateEngine.init(config.getResourceFetcher().getResource("String_Node_Str"));
    File databaseDir=new File(config.getHomeDir(),"String_Node_Str");
    BerkeleyColumnDatabase columnDatabase=new BerkeleyColumnDatabase(databaseDir);
    bimDatabase=new Database(this,packages,columnDatabase);
    try {
      bimDatabase.init();
    }
 catch (    DatabaseRestartRequiredException e) {
      bimDatabase.close();
      columnDatabase=new BerkeleyColumnDatabase(databaseDir);
      bimDatabase=new Database(this,packages,columnDatabase);
      try {
        bimDatabase.init();
      }
 catch (      InconsistentModelsException e1) {
        LOGGER.error("String_Node_Str",e);
        serverInfoManager.setServerState(ServerState.FATAL_ERROR);
        serverInfoManager.setErrorMessage("String_Node_Str");
      }
    }
catch (    InconsistentModelsException e) {
      LOGGER.error("String_Node_Str",e);
      serverInfoManager.setServerState(ServerState.FATAL_ERROR);
      serverInfoManager.setErrorMessage("String_Node_Str");
    }
    protocolBuffersMetaData=new ProtocolBuffersMetaData();
    try {
      protocolBuffersMetaData.load(config.getResourceFetcher().getResource("String_Node_Str"));
      protocolBuffersMetaData.load(config.getResourceFetcher().getResource("String_Node_Str"));
    }
 catch (    IOException e) {
      LOGGER.error("String_Node_Str",e);
    }
    sService=new SService(ServiceInterface.class);
    notificationsManager=new NotificationsManager(this);
    notificationsManager.start();
    settingsManager=new SettingsManager(bimDatabase);
    serverInfoManager.init(this);
    serverInfoManager.update();
    emfSerializerFactory=new EmfSerializerFactory();
    emfDeserializerFactory=new EmfDeserializerFactory();
    if (serverInfoManager.getServerState() == ServerState.MIGRATION_REQUIRED) {
      serverInfoManager.registerStateChangeListener(new StateChangeListener(){
        @Override public void stateChanged(        ServerState oldState,        ServerState newState){
          if (oldState == ServerState.MIGRATION_REQUIRED && newState == ServerState.RUNNING) {
            try {
              initDatabaseDependantItems();
            }
 catch (            BimDatabaseException e) {
              LOGGER.error("String_Node_Str",e);
            }
          }
        }
      }
);
    }
 else {
      initDatabaseDependantItems();
    }
    mailSystem=new MailSystem(settingsManager);
    serviceFactory=new ServiceInterfaceFactory(this);
    if (config.isStartEmbeddedWebServer()) {
      embeddedWebServer.start();
    }
    diskCacheManager=new DiskCacheManager(new File(config.getHomeDir(),"String_Node_Str"),settingsManager);
    mergerFactory=new MergerFactory(settingsManager);
    setSystemService(serviceFactory.newService(AccessMethod.INTERNAL,"String_Node_Str"));
    try {
      if (!((Service)getSystemService()).loginAsSystem()) {
        throw new RuntimeException("String_Node_Str");
      }
    }
 catch (    ServiceException e) {
      LOGGER.error("String_Node_Str",e);
    }
    bimScheduler=new JobScheduler(this);
    bimScheduler.start();
    try {
      ServiceFactoryRegistry serviceFactoryRegistry=new ServiceFactoryRegistry();
      serviceFactoryRegistry.registerServiceFactory(serviceFactory);
      protocolBuffersServer=new ProtocolBuffersServer(protocolBuffersMetaData,serviceFactoryRegistry,settingsManager.getSettings().getProtocolBuffersPort());
      protocolBuffersServer.registerService(new ReflectiveRpcChannel(serviceFactory,protocolBuffersMetaData,new SService(ServiceInterface.class)));
      protocolBuffersServer.start();
    }
 catch (    Exception e) {
      LOGGER.error("String_Node_Str",e);
    }
    ServerStarted serverStarted=LogFactory.eINSTANCE.createServerStarted();
    serverStarted.setDate(new Date());
    serverStarted.setAccessMethod(AccessMethod.INTERNAL);
    serverStarted.setExecutor(null);
    BimDatabaseSession session=bimDatabase.createSession(true);
    try {
      session.store(serverStarted);
      session.commit();
    }
 catch (    BimDeadlockException e) {
      throw new BimDatabaseException(e);
    }
 finally {
      session.close();
    }
    CommandLine commandLine=new CommandLine(this);
    commandLine.start();
    LOGGER.info("String_Node_Str");
  }
 catch (  Throwable e) {
    e.printStackTrace();
    serverInfoManager.setErrorMessage(e.getMessage());
    LOGGER.error("String_Node_Str",e);
  }
}

Fixed version (ground truth):
public void start() throws DatabaseInitException, BimDatabaseException, PluginException, DatabaseRestartRequiredException, ServerException {
  try {
    SVersion localVersion=versionChecker.getLocalVersion();
    if (localVersion != null) {
      LOGGER.info("String_Node_Str" + localVersion.getMajor() + "String_Node_Str"+ localVersion.getMinor()+ "String_Node_Str"+ localVersion.getRevision()+ "String_Node_Str"+ localVersion.getDate());
    }
 else {
      LOGGER.info("String_Node_Str");
    }
    pluginManager.initAllLoadedPlugins();
    serverStartTime=new GregorianCalendar();
    longActionManager=new LongActionManager();
    Set<Ifc2x3Package> packages=CollectionUtils.singleSet(Ifc2x3Package.eINSTANCE);
    templateEngine=new TemplateEngine();
    templateEngine.init(config.getResourceFetcher().getResource("String_Node_Str"));
    File databaseDir=new File(config.getHomeDir(),"String_Node_Str");
    BerkeleyColumnDatabase columnDatabase=new BerkeleyColumnDatabase(databaseDir);
    bimDatabase=new Database(this,packages,columnDatabase);
    try {
      bimDatabase.init();
    }
 catch (    DatabaseRestartRequiredException e) {
      bimDatabase.close();
      columnDatabase=new BerkeleyColumnDatabase(databaseDir);
      bimDatabase=new Database(this,packages,columnDatabase);
      try {
        bimDatabase.init();
      }
 catch (      InconsistentModelsException e1) {
        LOGGER.error("String_Node_Str",e);
        serverInfoManager.setServerState(ServerState.FATAL_ERROR);
        serverInfoManager.setErrorMessage("String_Node_Str");
      }
    }
catch (    InconsistentModelsException e) {
      LOGGER.error("String_Node_Str",e);
      serverInfoManager.setServerState(ServerState.FATAL_ERROR);
      serverInfoManager.setErrorMessage("String_Node_Str");
    }
    protocolBuffersMetaData=new ProtocolBuffersMetaData();
    try {
      protocolBuffersMetaData.load(config.getResourceFetcher().getResource("String_Node_Str"));
      protocolBuffersMetaData.load(config.getResourceFetcher().getResource("String_Node_Str"));
    }
 catch (    IOException e) {
      LOGGER.error("String_Node_Str",e);
    }
    sService=new SService(ServiceInterface.class);
    notificationsManager=new NotificationsManager(this);
    notificationsManager.start();
    settingsManager=new SettingsManager(bimDatabase);
    serverInfoManager.init(this);
    serverInfoManager.update();
    emfSerializerFactory=new EmfSerializerFactory();
    emfDeserializerFactory=new EmfDeserializerFactory();
    if (serverInfoManager.getServerState() == ServerState.MIGRATION_REQUIRED) {
      serverInfoManager.registerStateChangeListener(new StateChangeListener(){
        @Override public void stateChanged(        ServerState oldState,        ServerState newState){
          if (oldState == ServerState.MIGRATION_REQUIRED && newState == ServerState.RUNNING) {
            try {
              initDatabaseDependantItems();
            }
 catch (            BimDatabaseException e) {
              LOGGER.error("String_Node_Str",e);
            }
          }
        }
      }
);
    }
 else {
      initDatabaseDependantItems();
    }
    mailSystem=new MailSystem(settingsManager);
    serviceFactory=new ServiceInterfaceFactory(this);
    if (config.isStartEmbeddedWebServer()) {
      embeddedWebServer.start();
    }
    diskCacheManager=new DiskCacheManager(new File(config.getHomeDir(),"String_Node_Str"),settingsManager);
    mergerFactory=new MergerFactory(settingsManager);
    setSystemService(serviceFactory.newService(AccessMethod.INTERNAL,"String_Node_Str"));
    try {
      if (!((Service)getSystemService()).loginAsSystem()) {
        throw new RuntimeException("String_Node_Str");
      }
    }
 catch (    ServiceException e) {
      LOGGER.error("String_Node_Str",e);
    }
    bimScheduler=new JobScheduler(this);
    bimScheduler.start();
    try {
      ServiceFactoryRegistry serviceFactoryRegistry=new ServiceFactoryRegistry();
      serviceFactoryRegistry.registerServiceFactory(serviceFactory);
      protocolBuffersServer=new ProtocolBuffersServer(protocolBuffersMetaData,serviceFactoryRegistry,settingsManager.getSettings().getProtocolBuffersPort());
      protocolBuffersServer.registerService(new ReflectiveRpcChannel(serviceFactory,protocolBuffersMetaData,new SService(ServiceInterface.class)));
      protocolBuffersServer.start();
    }
 catch (    Exception e) {
      LOGGER.error("String_Node_Str",e);
    }
    ServerStarted serverStarted=LogFactory.eINSTANCE.createServerStarted();
    serverStarted.setDate(new Date());
    serverStarted.setAccessMethod(AccessMethod.INTERNAL);
    serverStarted.setExecutor(null);
    BimDatabaseSession session=bimDatabase.createSession(true);
    try {
      session.store(serverStarted);
      session.commit();
    }
 catch (    BimDeadlockException e) {
      throw new BimDatabaseException(e);
    }
 finally {
      session.close();
    }
    CommandLine commandLine=new CommandLine(this);
    commandLine.start();
    LOGGER.info("String_Node_Str");
  }
 catch (  Throwable e) {
    e.printStackTrace();
    serverInfoManager.setErrorMessage(e.getMessage());
    LOGGER.error("String_Node_Str",e);
  }
}