Program: 2745
Project: 2745
Buggy source:
@Test public void testRunDebugRhodesAppTask() throws Throwable {
  String appName="String_Node_Str";
  String projectLocation=OSHelper.concat(workspaceFolder,appName).getPath();
  String signature1=(OSValidator.isWindows()) ? "String_Node_Str" + unixSlashes(projectLocation) + "String_Node_Str" : "String_Node_Str" + projectLocation;
  String signature2=(OSValidator.isWindows()) ? "String_Node_Str" : "String_Node_Str";
  Set<Integer> before1=getProcessesIds(signature1);
  Set<Integer> before2=getProcessesIds(signature2);
  try {
{
      Map<String,Object> params=new HashMap<String,Object>();
      params.put(GenerateRhodesAppTask.appName,appName);
      params.put(GenerateRhodesAppTask.workDir,workspaceFolder);
      Map<String,?> results=RhoTaskHolder.getInstance().runTask(GenerateRhodesAppTask.class,params);
      assertEquals(0,TaskResultConverter.getResultIntCode(results));
    }
{
      String text[]={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      String appRb=OSHelper.concat(projectLocation,"String_Node_Str","String_Node_Str").getPath();
      writeTextFile(appRb,join("String_Node_Str",text));
    }
    DebugCallback debugCallback=new DebugCallback(m_eventQueue,m_semaphore);
    final DebugServer debugServer=new DebugServer(debugCallback);
    final Throwable[] exception=new Throwable[1];
    Thread debugServerThread=new Thread(new Runnable(){
      @Override public void run(){
        try {
          debugServer.run();
        }
 catch (        Throwable t) {
          exception[0]=t;
        }
      }
    }
);
    debugServerThread.start();
{
      Map<String,Object> params=new HashMap<String,Object>();
      ILaunch launch=new Launch(null,ILaunchManager.DEBUG_MODE,null);
      params.put(RunDebugRhodesAppTask.workDir,projectLocation);
      params.put(RunDebugRhodesAppTask.appName,appName);
      params.put(RunDebugRhodesAppTask.platformType,PlatformType.eAndroid);
      params.put(RunDebugRhodesAppTask.reloadCode,false);
      params.put(RunDebugRhodesAppTask.launchObj,launch);
      params.put(RunDebugRhodesAppTask.traceFlag,false);
      Map<String,?> results=RhoTaskHolder.getInstance().runTask(RunDebugRhodesAppTask.class,params);
      assertEquals(TaskResultConverter.okCode,TaskResultConverter.getResultIntCode(results));
    }
    suspend("String_Node_Str");
    debugServer.debugBreakpoint("String_Node_Str",5);
    debugServer.debugBreakpoint("String_Node_Str",6);
    debugServer.debugRemoveBreakpoint("String_Node_Str",5);
    pass("String_Node_Str","String_Node_Str","String_Node_Str" + unixSlashes(prependPrivate(OSHelper.concat(projectLocation,"String_Node_Str").getPath())) + "String_Node_Str","String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugBreakpoint("String_Node_Str",7);
    debugServer.debugResume();
    pass("String_Node_Str","String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugStepOver();
    pass("String_Node_Str","String_Node_Str","String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugBreakpoint("String_Node_Str",12);
    debugServer.debugResume();
    pass("String_Node_Str","String_Node_Str");
    debugServer.debugBreakpoint("String_Node_Str",13);
    debugServer.debugRemoveAllBreakpoints();
    debugServer.debugStepReturn();
    pass("String_Node_Str","String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str" + prependPrivate(unixSlashes(OSHelper.concat(projectLocation,"String_Node_Str","String_Node_Str").getPath())) + "String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugTerminate();
    pass("String_Node_Str");
    debugServer.shutdown();
    resume();
    debugServerThread.join();
    if (exception[0] != null) {
      throw exception[0];
    }
  }
  finally {
    Set<Integer> after1=getProcessesIds(signature1);
    Set<Integer> after2=getProcessesIds(signature2);
    Set<Integer> diff1=new HashSet<Integer>(after1);
    diff1.removeAll(before1);
    for (    int pid : diff1) {
      OSHelper.killProcess(pid);
    }
    Set<Integer> diff2=new HashSet<Integer>(after2);
    diff2.removeAll(before2);
    for (    int pid : diff2) {
      OSHelper.killProcess(pid);
    }
  }
}

Fixed version (ground truth):
@Test public void testRunDebugRhodesAppTask() throws Throwable {
  String appName="String_Node_Str";
  String projectLocation=OSHelper.concat(workspaceFolder,appName).getPath();
  String signature1=OSValidator.isWindows() ? "String_Node_Str" + unixSlashes(projectLocation) + "String_Node_Str" : "String_Node_Str" + projectLocation;
  String signature2=OSValidator.isWindows() ? "String_Node_Str" : "String_Node_Str";
  Set<Integer> before1=getProcessesIds(signature1);
  Set<Integer> before2=getProcessesIds(signature2);
  try {
{
      Map<String,Object> params=new HashMap<String,Object>();
      params.put(GenerateRhodesAppTask.appName,appName);
      params.put(GenerateRhodesAppTask.workDir,workspaceFolder);
      Map<String,?> results=RhoTaskHolder.getInstance().runTask(GenerateRhodesAppTask.class,params);
      assertEquals(0,TaskResultConverter.getResultIntCode(results));
    }
{
      String text[]={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
      String appRb=OSHelper.concat(projectLocation,"String_Node_Str","String_Node_Str").getPath();
      writeTextFile(appRb,join("String_Node_Str",text));
    }
    DebugCallback debugCallback=new DebugCallback(m_eventQueue,m_semaphore);
    final DebugServer debugServer=new DebugServer(debugCallback);
    final Throwable[] exception=new Throwable[1];
    Thread debugServerThread=new Thread(new Runnable(){
      @Override public void run(){
        try {
          debugServer.run();
        }
 catch (        Throwable t) {
          exception[0]=t;
        }
      }
    }
);
    debugServerThread.start();
{
      Map<String,Object> params=new HashMap<String,Object>();
      ILaunch launch=new Launch(null,ILaunchManager.DEBUG_MODE,null);
      params.put(RunDebugRhodesAppTask.workDir,projectLocation);
      params.put(RunDebugRhodesAppTask.appName,appName);
      params.put(RunDebugRhodesAppTask.platformType,PlatformType.eAndroid);
      params.put(RunDebugRhodesAppTask.reloadCode,false);
      params.put(RunDebugRhodesAppTask.launchObj,launch);
      params.put(RunDebugRhodesAppTask.traceFlag,false);
      Map<String,?> results=RhoTaskHolder.getInstance().runTask(RunDebugRhodesAppTask.class,params);
      assertEquals(TaskResultConverter.okCode,TaskResultConverter.getResultIntCode(results));
    }
    suspend("String_Node_Str");
    debugServer.debugBreakpoint("String_Node_Str",5);
    debugServer.debugBreakpoint("String_Node_Str",6);
    debugServer.debugRemoveBreakpoint("String_Node_Str",5);
    pass("String_Node_Str","String_Node_Str","String_Node_Str" + unixSlashes(prependPrivate(OSHelper.concat(projectLocation,"String_Node_Str").getPath())) + "String_Node_Str","String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugBreakpoint("String_Node_Str",7);
    debugServer.debugResume();
    pass("String_Node_Str","String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugStepOver();
    pass("String_Node_Str","String_Node_Str","String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugBreakpoint("String_Node_Str",12);
    debugServer.debugResume();
    pass("String_Node_Str","String_Node_Str");
    debugServer.debugBreakpoint("String_Node_Str",13);
    debugServer.debugRemoveAllBreakpoints();
    debugServer.debugStepReturn();
    pass("String_Node_Str","String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str" + prependPrivate(unixSlashes(OSHelper.concat(projectLocation,"String_Node_Str","String_Node_Str").getPath())) + "String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugEvaluate("String_Node_Str");
    pass("String_Node_Str");
    debugServer.debugTerminate();
    pass("String_Node_Str");
    debugServer.shutdown();
    resume();
    debugServerThread.join();
    if (exception[0] != null) {
      throw exception[0];
    }
  }
  finally {
    Set<Integer> after1=getProcessesIds(signature1);
    Set<Integer> after2=getProcessesIds(signature2);
    Set<Integer> diff1=new HashSet<Integer>(after1);
    diff1.removeAll(before1);
    for (    int pid : diff1) {
      OSHelper.killProcess(pid);
    }
    Set<Integer> diff2=new HashSet<Integer>(after2);
    diff2.removeAll(before2);
    for (    int pid : diff2) {
      OSHelper.killProcess(pid);
    }
  }
}