Program: 2775
Project: 2775
Buggy source:
@SuppressWarnings("String_Node_Str") public synchronized void launch(ILaunchConfiguration configuration,String mode,ILaunch launch,final IProgressMonitor monitor) throws CoreException {
  RhogenDebugTarget target=null;
  setProcessFinished(false);
  rhodesLogHelper.stopLog();
  ConsoleHelper.cleanBuildConsole();
  setupConfigAttributes(configuration);
  if (OSHelper.isWindows() && m_platformType.equals(RhodesAdapter.platformBlackBerry)) {
    RunExeHelper.killBbSimulator();
  }
  if (m_projectName == null || m_projectName.length() == 0 || m_platformName == null || m_platformName.length() == 0) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  final IProject project=ResourcesPlugin.getWorkspace().getRoot().getProject(m_projectName);
  if (!project.isOpen()) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  if (mode.equals(ILaunchManager.DEBUG_MODE)) {
    ShowPerspectiveJob job=new ShowPerspectiveJob("String_Node_Str",DebugConstants.debugPerspectiveId);
    job.run(monitor);
    RunExeHelper.killRhoSimulator();
    target=new RhogenDebugTarget(launch,null);
  }
  try {
    cleanSelectedPlatform(project,m_isClean);
    startBuildThread(project,mode,launch);
    while (true) {
      try {
        if (monitor.isCanceled()) {
          OSHelper.killProcess("String_Node_Str");
          return;
        }
        if (getProcessFinished()) {
          break;
        }
        Thread.sleep(100);
      }
 catch (      InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
 catch (  IllegalArgumentException e) {
    ConsoleHelper.consolePrint(e.getMessage());
  }
catch (  Exception e) {
    e.printStackTrace();
  }
  monitor.done();
  if (mode.equals(ILaunchManager.DEBUG_MODE)) {
    target.setProcess(m_debugProcess);
    launch.addDebugTarget(target);
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public synchronized void launch(ILaunchConfiguration configuration,String mode,ILaunch launch,final IProgressMonitor monitor) throws CoreException {
  RhogenDebugTarget target=null;
  setProcessFinished(false);
  rhodesLogHelper.stopLog();
  ConsoleHelper.cleanBuildConsole();
  setupConfigAttributes(configuration);
  if (OSHelper.isWindows() && m_platformType.equals(RhodesAdapter.platformBlackBerry)) {
    RunExeHelper.killBbSimulator();
  }
  if (m_projectName == null || m_projectName.length() == 0 || m_platformName == null || m_platformName.length() == 0) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  final IProject project=ResourcesPlugin.getWorkspace().getRoot().getProject(m_projectName);
  if (!project.isOpen()) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  if (mode.equals(ILaunchManager.DEBUG_MODE)) {
    ShowPerspectiveJob job=new ShowPerspectiveJob("String_Node_Str",DebugConstants.debugPerspectiveId);
    job.run(monitor);
    RunExeHelper.killRhoSimulator();
    target=new RhogenDebugTarget(launch,null);
  }
  try {
    cleanSelectedPlatform(project,m_isClean);
    startBuildThread(project,mode,launch);
    while (true) {
      try {
        if (monitor.isCanceled()) {
          OSHelper.killProcess("String_Node_Str");
          return;
        }
        if (getProcessFinished()) {
          break;
        }
        Thread.sleep(100);
      }
 catch (      InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
 catch (  IllegalArgumentException e) {
    ConsoleHelper.consolePrint(e.getMessage());
  }
catch (  Exception e) {
    e.printStackTrace();
  }
  monitor.done();
  if (mode.equals(ILaunchManager.DEBUG_MODE)) {
    target.setProcess(m_debugProcess);
    launch.addDebugTarget(target);
    try {
      Thread.sleep(sleepWaitChangeConsole);
      ConsoleHelper.showAppConsole();
    }
 catch (    InterruptedException e) {
    }
  }
}