Program: 122553
Project: 122553
Buggy source:
@Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
  monitorWrap=new EventLoopProgressMonitor(monitor);
  try {
    DemoProjectBean demoProjectBean=demoProjectList.get(selectedDemoProjectIndex);
    String projectName=demoProjectBean.getProjectName();
    if (checkProjectIsExisting(projectName)) {
      boolean reImportFlag=MessageDialog.openQuestion(shell,Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"));
      if (!reImportFlag) {
        return;
      }
    }
    String demoFilePath=demoProjectBean.getDemoProjectFilePath();
    EDemoProjectFileType demoProjectFileType=demoProjectBean.getDemoProjectFileType();
    String pluginID=demoProjectBean.getPluginId();
    Bundle bundle=Platform.getBundle(pluginID);
    URL url=FileLocator.resolve(bundle.getEntry(demoFilePath));
    String filePath=new Path(url.getFile()).toOSString();
    String technicalName=ProjectManager.getInstance().getLocalTechnicalProjectName(projectName);
    if (demoProjectFileType.equals(EDemoProjectFileType.FOLDER)) {
      ImportProjectsUtilities.importProjectAs(shell,projectName,technicalName,filePath,monitorWrap);
    }
 else {
      ImportProjectsUtilities.importArchiveProjectAs(shell,projectName,technicalName,filePath,monitorWrap);
    }
    lastImportedName=projectName;
  }
 catch (  IOException e) {
    throw new InvocationTargetException(e);
  }
catch (  TarException e) {
    throw new InvocationTargetException(e);
  }
  monitorWrap.done();
  MessageDialog.openInformation(shell,Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"));
  PreferenceManipulator prefManipulator=new PreferenceManipulator(CorePlugin.getDefault().getPreferenceStore());
  prefManipulator.setValue(DEMO_ALREADY_IMPORTED,true);
}

Fixed version (ground truth):
@Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
  monitorWrap=new EventLoopProgressMonitor(monitor);
  try {
    DemoProjectBean demoProjectBean=demoProjectList.get(selectedDemoProjectIndex);
    String projectName=demoProjectBean.getProjectName();
    if (checkProjectIsExisting(projectName)) {
      boolean reImportFlag=MessageDialog.openQuestion(shell,Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"));
      if (!reImportFlag) {
        return;
      }
    }
    String demoFilePath=demoProjectBean.getDemoProjectFilePath();
    EDemoProjectFileType demoProjectFileType=demoProjectBean.getDemoProjectFileType();
    String pluginID=demoProjectBean.getPluginId();
    Bundle bundle=Platform.getBundle(pluginID);
    URL url=FileLocator.resolve(bundle.getEntry(demoFilePath));
    String filePath=new Path(url.getFile()).toOSString();
    String technicalName=ProjectManager.getLocalTechnicalProjectName(projectName);
    if (demoProjectFileType.equals(EDemoProjectFileType.FOLDER)) {
      ImportProjectsUtilities.importProjectAs(shell,projectName,technicalName,filePath,monitorWrap);
    }
 else {
      ImportProjectsUtilities.importArchiveProjectAs(shell,projectName,technicalName,filePath,monitorWrap);
    }
    lastImportedName=projectName;
  }
 catch (  IOException e) {
    throw new InvocationTargetException(e);
  }
catch (  TarException e) {
    throw new InvocationTargetException(e);
  }
  monitorWrap.done();
  MessageDialog.openInformation(shell,Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"));
  PreferenceManipulator prefManipulator=new PreferenceManipulator(CorePlugin.getDefault().getPreferenceStore());
  prefManipulator.setValue(DEMO_ALREADY_IMPORTED,true);
}