Program: 60811
Project: 60811
Buggy source:
private void updateUsers(final SyncDelta delta,final List<Long> users,final boolean dryRun,final List<SyncResult> results) throws JobExecutionException {
  if (!((SyncTask)task).isPerformUpdate()) {
    LOG.debug("String_Node_Str");
    return;
  }
  LOG.debug("String_Node_Str",users);
  for (  Long userId : users) {
    final SyncResult result=new SyncResult();
    result.setOperation(Operation.UPDATE);
    try {
      UserTO userTO=userDataBinder.getUserTO(userId);
      try {
        final UserMod userMod=getUserMod(userId,delta.getObject());
        actions.beforeUpdate(delta,userTO,userMod);
        result.setStatus(SyncResult.Status.SUCCESS);
        result.setUserId(userMod.getId());
        result.setUsername(userMod.getUsername());
        if (!dryRun) {
          WorkflowResult<Map.Entry<Long,PropagationByResource>> updated=wfAdapter.update(userMod);
          List<PropagationTask> tasks=propagationManager.getUpdateTaskIds(updated.getResult().getKey(),userMod.getPassword(),null,null,null,updated.getResult().getValue(),((SyncTask)this.task).getResource().getName());
          propagationManager.execute(tasks);
          userTO=userDataBinder.getUserTO(updated.getResult().getKey());
        }
      }
 catch (      PropagationException e) {
        LOG.error("String_Node_Str" + delta.getUid().getUidValue(),e);
      }
catch (      Throwable t) {
        result.setStatus(SyncResult.Status.FAILURE);
        result.setMessage(t.getMessage());
        LOG.error("String_Node_Str" + delta.getUid().getUidValue(),t);
      }
      actions.after(delta,userTO,result);
      results.add(result);
    }
 catch (    NotFoundException e) {
      LOG.error("String_Node_Str",userId,e);
    }
catch (    UnauthorizedRoleException e) {
      LOG.error("String_Node_Str",userId,e);
    }
  }
}

Fixed version (ground truth):
private void updateUsers(final SyncDelta delta,final List<Long> users,final boolean dryRun,final List<SyncResult> results) throws JobExecutionException {
  if (!((SyncTask)task).isPerformUpdate()) {
    LOG.debug("String_Node_Str");
    return;
  }
  LOG.debug("String_Node_Str",users);
  for (  Long userId : users) {
    final SyncResult result=new SyncResult();
    result.setOperation(Operation.UPDATE);
    try {
      UserTO userTO=userDataBinder.getUserTO(userId);
      try {
        final UserMod userMod=getUserMod(userId,delta.getObject());
        actions.beforeUpdate(delta,userTO,userMod);
        result.setStatus(SyncResult.Status.SUCCESS);
        result.setUserId(userMod.getId());
        result.setUsername(userMod.getUsername());
        if (!dryRun) {
          WorkflowResult<Long> updated=wfAdapter.update(userMod);
          List<PropagationTask> tasks=propagationManager.getUpdateTaskIds(updated,userMod.getPassword(),null,null,null,((SyncTask)this.task).getResource().getName());
          propagationManager.execute(tasks);
          userTO=userDataBinder.getUserTO(updated.getResult());
        }
      }
 catch (      PropagationException e) {
        LOG.error("String_Node_Str" + delta.getUid().getUidValue(),e);
      }
catch (      Throwable t) {
        result.setStatus(SyncResult.Status.FAILURE);
        result.setMessage(t.getMessage());
        LOG.error("String_Node_Str" + delta.getUid().getUidValue(),t);
      }
      actions.after(delta,userTO,result);
      results.add(result);
    }
 catch (    NotFoundException e) {
      LOG.error("String_Node_Str",userId,e);
    }
catch (    UnauthorizedRoleException e) {
      LOG.error("String_Node_Str",userId,e);
    }
  }
}