Program: 30186
Project: 30186
Buggy source:
public void loadProject(File projectFile) throws IOException {
  File oldProjectFile=this.projectFile;
  this.projectFile=projectFile;
  if (checkProjectStructure()) {
    FolderClassLoader folderClassLoader=new FolderClassLoader(projectFile.getAbsolutePath() + "String_Node_Str");
    ActionFactory.setActionClassLoader(folderClassLoader);
    EngineAssetManager.createEditInstance(Ctx.project.getProjectDir().getAbsolutePath() + Project.ASSETS_PATH);
    try {
      World.getInstance().loadWorldDesc();
    }
 catch (    SerializationException ex) {
      if (ex.getCause() != null && ex.getCause() instanceof ClassNotFoundException) {
        EditorLogger.debug("String_Node_Str");
        if (RunProccess.runGradle(Ctx.project.getProjectDir(),"String_Node_Str")) {
          folderClassLoader.reload();
          World.getInstance().loadWorldDesc();
        }
 else {
          this.projectFile=null;
          throw new IOException("String_Node_Str");
        }
      }
 else {
        this.projectFile=null;
        throw ex;
      }
    }
    chapter=new Chapter(Ctx.project.getProjectDir().getAbsolutePath() + Project.MODEL_PATH);
    i18n=new I18NHandler(Ctx.project.getProjectDir().getAbsolutePath() + Project.MODEL_PATH);
    editorConfig.setProperty(LAST_PROJECT_PROP,projectFile.getAbsolutePath());
    projectConfig=new OrderedProperties();
    projectConfig.load(new FileInputStream(projectFile.getAbsolutePath() + ASSETS_PATH + "String_Node_Str"+ Config.PROPERTIES_FILENAME));
    modified=false;
    Display.setTitle("String_Node_Str" + Versions.getVersion() + "String_Node_Str"+ projectFile.getAbsolutePath());
    firePropertyChange(NOTIFY_PROJECT_LOADED);
  }
 else {
    this.projectFile=oldProjectFile;
    throw new IOException("String_Node_Str");
  }
}

Fixed version (ground truth):
public void loadProject(File projectFile) throws IOException {
  closeProject();
  File oldProjectFile=this.projectFile;
  this.projectFile=projectFile;
  if (checkProjectStructure()) {
    FolderClassLoader folderClassLoader=new FolderClassLoader(projectFile.getAbsolutePath() + "String_Node_Str");
    ActionFactory.setActionClassLoader(folderClassLoader);
    EngineAssetManager.createEditInstance(Ctx.project.getProjectDir().getAbsolutePath() + Project.ASSETS_PATH);
    try {
      World.getInstance().loadWorldDesc();
    }
 catch (    SerializationException ex) {
      if (ex.getCause() != null && ex.getCause() instanceof ClassNotFoundException) {
        EditorLogger.debug("String_Node_Str");
        if (RunProccess.runGradle(Ctx.project.getProjectDir(),"String_Node_Str")) {
          folderClassLoader.reload();
          World.getInstance().loadWorldDesc();
        }
 else {
          this.projectFile=null;
          throw new IOException("String_Node_Str");
        }
      }
 else {
        this.projectFile=null;
        throw ex;
      }
    }
    chapter=new Chapter(Ctx.project.getProjectDir().getAbsolutePath() + Project.MODEL_PATH);
    i18n=new I18NHandler(Ctx.project.getProjectDir().getAbsolutePath() + Project.MODEL_PATH);
    editorConfig.setProperty(LAST_PROJECT_PROP,projectFile.getAbsolutePath());
    projectConfig=new OrderedProperties();
    projectConfig.load(new FileInputStream(projectFile.getAbsolutePath() + ASSETS_PATH + "String_Node_Str"+ Config.PROPERTIES_FILENAME));
    modified=false;
    Display.setTitle("String_Node_Str" + Versions.getVersion() + "String_Node_Str"+ projectFile.getAbsolutePath());
    firePropertyChange(NOTIFY_PROJECT_LOADED);
  }
 else {
    this.projectFile=oldProjectFile;
    throw new IOException("String_Node_Str");
  }
}