Program: 61142
Project: 61142
Buggy source:
@Override public boolean resubmitTask(String path,Task task,ResubmitDirective directive){
  if (task.status != IN_PROGRESS) {
    return false;
  }
  int version;
  if (directive != FORCE) {
    final long time=EnvironmentEdgeManager.currentTime() - task.last_update;
    final boolean alive=details.getMaster().getServerManager() != null ? details.getMaster().getServerManager().isServerOnline(task.cur_worker_name) : true;
    if (alive && time < timeout) {
      LOG.trace("String_Node_Str" + task.toString() + "String_Node_Str"+ task.cur_worker_name+ "String_Node_Str"+ time+ "String_Node_Str"+ timeout);
      return false;
    }
    if (task.unforcedResubmits.get() >= resubmitThreshold) {
      if (!task.resubmitThresholdReached) {
        task.resubmitThresholdReached=true;
        SplitLogCounters.tot_mgr_resubmit_threshold_reached.incrementAndGet();
        LOG.info("String_Node_Str" + path + "String_Node_Str"+ resubmitThreshold+ "String_Node_Str");
      }
      return false;
    }
    version=task.last_version;
  }
 else {
    SplitLogCounters.tot_mgr_resubmit_force.incrementAndGet();
    version=-1;
  }
  LOG.info("String_Node_Str" + path);
  task.incarnation++;
  boolean result=resubmit(this.details.getServerName(),path,version);
  if (!result) {
    task.heartbeatNoDetails(EnvironmentEdgeManager.currentTime());
    return false;
  }
  if (directive != FORCE) {
    task.unforcedResubmits.incrementAndGet();
  }
  task.setUnassigned();
  rescan(Long.MAX_VALUE);
  SplitLogCounters.tot_mgr_resubmit.incrementAndGet();
  return true;
}

Fixed version (ground truth):
@Override public boolean resubmitTask(String path,Task task,ResubmitDirective directive){
  if (task.status != IN_PROGRESS) {
    return false;
  }
  int version;
  if (directive != FORCE) {
    final long time=EnvironmentEdgeManager.currentTime() - task.last_update;
    final boolean alive=details.getMaster().getServerManager() != null ? details.getMaster().getServerManager().isServerOnline(task.cur_worker_name) : true;
    if (alive && time < timeout) {
      LOG.trace("String_Node_Str" + task.toString() + "String_Node_Str"+ task.cur_worker_name+ "String_Node_Str"+ time+ "String_Node_Str"+ timeout);
      return false;
    }
    if (task.unforcedResubmits.get() >= resubmitThreshold) {
      if (!task.resubmitThresholdReached) {
        task.resubmitThresholdReached=true;
        SplitLogCounters.tot_mgr_resubmit_threshold_reached.incrementAndGet();
        LOG.info("String_Node_Str" + path + "String_Node_Str"+ resubmitThreshold+ "String_Node_Str");
      }
      return false;
    }
    version=task.last_version;
  }
 else {
    SplitLogCounters.tot_mgr_resubmit_force.incrementAndGet();
    version=-1;
  }
  LOG.info("String_Node_Str" + path);
  task.incarnation.incrementAndGet();
  boolean result=resubmit(this.details.getServerName(),path,version);
  if (!result) {
    task.heartbeatNoDetails(EnvironmentEdgeManager.currentTime());
    return false;
  }
  if (directive != FORCE) {
    task.unforcedResubmits.incrementAndGet();
  }
  task.setUnassigned();
  rescan(Long.MAX_VALUE);
  SplitLogCounters.tot_mgr_resubmit.incrementAndGet();
  return true;
}