Program: 124267
Project: 124267
Buggy source:
@Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
  monitorWrap=new EventLoopProgressMonitor(monitor);
  try {
    DemoProjectBean demoProjectBean=demoProjectList.get(selectedDemoProjectIndex);
    String techName=demoProjectBean.getProjectName();
    if (checkProjectIsExisting(techName)) {
      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=ResourcesPlugin.PLUGIN_ID;
    if (techName.equals("String_Node_Str")) {
      pluginID="String_Node_Str";
    }
 else     if (techName.equals("String_Node_Str")) {
      pluginID=ResourcesPlugin.TDQ_PLUGIN_ID;
    }
    Bundle bundle=Platform.getBundle(pluginID);
    URL url=FileLocator.resolve(bundle.getEntry(demoFilePath));
    String filePath=new Path(url.getFile()).toOSString();
    if (demoProjectFileType.getName().equalsIgnoreCase("String_Node_Str")) {
      ImportProjectsUtilities.importProjectAs(shell,techName,techName,filePath,monitorWrap);
    }
 else {
      ImportProjectsUtilities.importArchiveProject(shell,techName,filePath,monitorWrap);
    }
    lastImportedName=techName;
  }
 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 techName=demoProjectBean.getProjectName();
    if (checkProjectIsExisting(techName)) {
      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=ResourcesPlugin.PLUGIN_ID;
    if (techName.equals("String_Node_Str")) {
      pluginID="String_Node_Str";
    }
 else     if (techName.equals("String_Node_Str")) {
      pluginID=ResourcesPlugin.TDQ_PLUGIN_ID;
    }
    Bundle bundle=Platform.getBundle(pluginID);
    URL url=FileLocator.resolve(bundle.getEntry(demoFilePath));
    String filePath=new Path(url.getFile()).toOSString();
    if (demoProjectFileType.getName().equalsIgnoreCase("String_Node_Str")) {
      ImportProjectsUtilities.importProjectAs(shell,techName,techName,filePath,monitorWrap);
    }
 else {
      ImportProjectsUtilities.importArchiveProjectAs(shell,techName,techName,filePath,monitorWrap);
    }
    lastImportedName=techName;
  }
 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);
}