Program: 2702
Project: 2702
Buggy source:
public synchronized void launchLocalProject(IProject project,ILaunchConfiguration configuration,String mode,ILaunch launch,final IProgressMonitor monitor) throws CoreException {
  try {
    DebugTarget target=null;
    setProcessFinished(false);
    rhodesLogHelper.stopLog();
    setStandartConsoleOutputIsOff();
    ConsoleHelper.getBuildConsole().clear();
    ConsoleHelper.getBuildConsole().show();
    setupConfigAttributes(configuration);
    PlatformType currPlType=PlatformType.fromId(m_platformType);
    if (m_projectName == null || m_projectName.length() == 0 || m_runType == null || m_runType.length() == 0) {
      throw new IllegalArgumentException("String_Node_Str");
    }
    if (!project.isOpen()) {
      throw new IllegalArgumentException("String_Node_Str" + project.getName() + "String_Node_Str");
    }
    if (mode.equals(ILaunchManager.DEBUG_MODE)) {
      ShowPerspectiveJob job=new ShowPerspectiveJob("String_Node_Str",DebugConstants.debugPerspectiveId);
      job.schedule();
      try {
        OSHelper.killProcess("String_Node_Str");
      }
 catch (      Exception e) {
        e.printStackTrace();
      }
      target=new DebugTarget(launch,null,project);
    }
    try {
      cleanSelectedPlatform(project,m_isClean,monitor);
      startBuildThread(project,mode,launch);
      while (true) {
        if (monitor.isCanceled()) {
          OSHelper.killProcess("String_Node_Str");
          return;
        }
        if (getProcessFinished()) {
          break;
        }
        Thread.sleep(100);
      }
    }
 catch (    InterruptedException e) {
      e.printStackTrace();
      Activator.logError(e);
    }
catch (    FileNotFoundException e) {
      DialogUtils.error("String_Node_Str","String_Node_Str");
      Activator.logError(e);
    }
catch (    IOException e) {
      e.printStackTrace();
      Activator.logError(e);
    }
    monitor.done();
    if (mode.equals(ILaunchManager.DEBUG_MODE)) {
      target.setProcess(m_debugProcess);
      launch.addDebugTarget(target);
    }
  }
 catch (  IllegalArgumentException e) {
    DialogUtils.error("String_Node_Str",e.getMessage());
  }
}

Fixed version (ground truth):
public synchronized void launchLocalProject(IProject project,ILaunchConfiguration configuration,String mode,ILaunch launch,final IProgressMonitor monitor) throws CoreException {
  try {
    DebugTarget target=null;
    setProcessFinished(false);
    rhodesLogHelper.stopLog();
    setStandartConsoleOutputIsOff();
    ConsoleHelper.getBuildConsole().clear();
    ConsoleHelper.getBuildConsole().show();
    setupConfigAttributes(configuration);
    PlatformType currPlType=PlatformType.fromId(m_platformType);
    if (m_projectName == null || m_projectName.length() == 0 || m_runType == null || m_runType.length() == 0) {
      throw new IllegalArgumentException("String_Node_Str");
    }
    if (!project.isOpen()) {
      throw new IllegalArgumentException("String_Node_Str" + project.getName() + "String_Node_Str");
    }
    if (mode.equals(ILaunchManager.DEBUG_MODE)) {
      ShowPerspectiveJob job=new ShowPerspectiveJob("String_Node_Str",DebugConstants.debugPerspectiveId);
      job.schedule();
      try {
        OSHelper.killProcess("String_Node_Str");
      }
 catch (      Exception e) {
        e.printStackTrace();
      }
      target=new DebugTarget(launch,null,project,RunType.fromString(m_runType),PlatformType.fromId(m_platformType));
    }
    try {
      cleanSelectedPlatform(project,m_isClean,monitor);
      startBuildThread(project,mode,launch);
      while (true) {
        if (monitor.isCanceled()) {
          OSHelper.killProcess("String_Node_Str");
          return;
        }
        if (getProcessFinished()) {
          break;
        }
        Thread.sleep(100);
      }
    }
 catch (    InterruptedException e) {
      e.printStackTrace();
      Activator.logError(e);
    }
catch (    FileNotFoundException e) {
      DialogUtils.error("String_Node_Str","String_Node_Str");
      Activator.logError(e);
    }
catch (    IOException e) {
      e.printStackTrace();
      Activator.logError(e);
    }
    monitor.done();
    if (mode.equals(ILaunchManager.DEBUG_MODE)) {
      target.setProcess(m_debugProcess);
      launch.addDebugTarget(target);
    }
  }
 catch (  IllegalArgumentException e) {
    DialogUtils.error("String_Node_Str",e.getMessage());
  }
}