Program: 88035
Project: 88035
Buggy source:
/** 
 * {@inheritDoc}
 */
@Override public void run(){
  LOG.info("String_Node_Str");
  if (this.failedVertices.isEmpty()) {
    LOG.error("String_Node_Str");
  }
  Iterator<ExecutionVertex> vertexIter=this.failedVertices.iterator();
  while (vertexIter.hasNext()) {
    ExecutionVertex failed=vertexIter.next();
    LOG.info("String_Node_Str" + failed);
    List<ExecutionVertex> restart=findRestarts(failed);
    if (restart.size() < 2) {
      LOG.info("String_Node_Str");
    }
 else {
      LOG.info(restart.size());
    }
    Iterator<ExecutionVertex> restartIterator=restart.iterator();
    while (restartIterator.hasNext()) {
      ExecutionVertex vertex=restartIterator.next();
      if (!vertex.equals(failed)) {
        LOG.info("String_Node_Str");
        LOG.info("String_Node_Str" + vertex.getName());
        vertex.getAllocatedResource().getInstance().restart(vertex.getID(),job.getJobConfiguration());
        LOG.info("String_Node_Str");
      }
    }
    Iterator<ExecutionVertex> checkpointIterator=this.globalConsistentCheckpoint.iterator();
    while (checkpointIterator.hasNext()) {
      ExecutionVertex checkpoint=checkpointIterator.next();
      AbstractInstance instance=checkpoint.getAllocatedResource().getInstance();
      instance.recoverAll(checkpoint.getEnvironment().getOutputGate(0).getOutputChannel(0).getID());
    }
    LOG.info("String_Node_Str" + failed);
  }
  this.job.executionStateChanged(null,ExecutionState.RERUNNING,null);
  LOG.info("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * {@inheritDoc}
 */
@Override public void run(){
  LOG.info("String_Node_Str");
  if (this.failedVertices.isEmpty()) {
    LOG.error("String_Node_Str");
  }
  Iterator<ExecutionVertex> vertexIter=this.failedVertices.iterator();
  while (vertexIter.hasNext()) {
    ExecutionVertex failed=vertexIter.next();
    LOG.info("String_Node_Str" + failed);
    List<ExecutionVertex> restart=findRestarts(failed);
    if (restart.size() < 2) {
      LOG.info("String_Node_Str");
    }
 else {
      LOG.info(restart.size());
    }
    Iterator<ExecutionVertex> restartIterator=restart.iterator();
    while (restartIterator.hasNext()) {
      ExecutionVertex vertex=restartIterator.next();
      if (!vertex.equals(failed)) {
        LOG.info("String_Node_Str");
        LOG.info("String_Node_Str" + vertex.getName());
        try {
          vertex.getAllocatedResource().getInstance().restart(vertex.getID(),job.getJobConfiguration());
        }
 catch (        Exception e) {
          LOG.info("String_Node_Str" + StringUtils.stringifyException(e) + "String_Node_Str");
        }
        System.out.println("String_Node_Str" + vertex.getName());
        LOG.info("String_Node_Str");
      }
    }
    Iterator<ExecutionVertex> checkpointIterator=this.globalConsistentCheckpoint.iterator();
    while (checkpointIterator.hasNext()) {
      ExecutionVertex checkpoint=checkpointIterator.next();
      AbstractInstance instance=checkpoint.getAllocatedResource().getInstance();
      instance.recoverAll(checkpoint.getEnvironment().getOutputGate(0).getOutputChannel(0).getID());
    }
    LOG.info("String_Node_Str" + failed);
  }
  this.job.executionStateChanged(null,ExecutionState.RERUNNING,null);
  LOG.info("String_Node_Str");
}