Program: 85442
Project: 85442
Buggy source:
public void save(IRequestCycle cycle) throws UserExistsException {
  if (log.isDebugEnabled()) {
    log.debug("String_Node_Str");
  }
  IValidationDelegate delegate=getValidationDelegate();
  if (!StringUtils.equals(getUser().getPassword(),getUser().getConfirmPassword())) {
    addError(delegate,"String_Node_Str",format("String_Node_Str",getMessage("String_Node_Str"),getMessage("String_Node_Str")),ValidationConstraint.CONSISTENCY);
  }
  if (delegate.getHasErrors()) {
    return;
  }
  String password=getUser().getPassword();
  String originalPassword=getRequest().getParameter("String_Node_Str");
  Boolean encrypt=(Boolean)getConfiguration().get(Constants.ENCRYPT_PASSWORD);
  boolean doEncrypt=(encrypt != null) ? encrypt.booleanValue() : false;
  if (doEncrypt && (StringUtils.equals(getRequest().getParameter("String_Node_Str"),"String_Node_Str") || !StringUtils.equals("String_Node_Str" + password,originalPassword))) {
    String algorithm=(String)getConfiguration().get(Constants.ENC_ALGORITHM);
    if (algorithm == null) {
      log.debug("String_Node_Str");
      algorithm="String_Node_Str";
    }
    getUser().setPassword(StringUtil.encodePassword(password,algorithm));
  }
  boolean fromList=StringUtils.equals(getRequest().getParameter("String_Node_Str"),"String_Node_Str");
  String[] userRoles=null;
  if (fromList) {
    userRoles=getRequest().getParameterValues("String_Node_Str");
  }
 else {
    userRoles=getRequest().getParameterValues("String_Node_Str");
  }
  User user=getUser();
  UserManager userManager=getUserManager();
  user.getRoles().clear();
  for (int i=0; (userRoles != null) && (i < userRoles.length); i++) {
    String roleName=userRoles[i];
    user.addRole(getRoleManager().getRole(roleName));
  }
  try {
    userManager.saveUser(user);
  }
 catch (  UserExistsException e) {
    log.warn(e.getMessage());
    addError(delegate,"String_Node_Str",format("String_Node_Str",user.getUsername(),user.getEmail()),ValidationConstraint.CONSISTENCY);
    return;
  }
  HttpSession session=getSession();
  HttpServletRequest request=getRequest();
  if (!fromList && user.getUsername().equals(getRequest().getRemoteUser())) {
    session.setAttribute(Constants.USER_KEY,user);
    MainMenu nextPage=(MainMenu)cycle.getPage("String_Node_Str");
    nextPage.setMessage(format("String_Node_Str",user.getFullName()));
    cycle.activate(nextPage);
  }
 else {
    if ("String_Node_Str".equals(request.getParameter(("String_Node_Str")))) {
      sendNewUserEmail(request,user);
      UserList nextPage=(UserList)cycle.getPage("String_Node_Str");
      nextPage.setMessage(format("String_Node_Str",user.getFullName()));
      cycle.activate(nextPage);
    }
 else {
      setMessage(format("String_Node_Str",user.getFullName()));
      cycle.activate("String_Node_Str");
    }
  }
}

Fixed version (ground truth):
public void save(IRequestCycle cycle) throws UserExistsException {
  if (log.isDebugEnabled()) {
    log.debug("String_Node_Str");
  }
  HttpServletRequest request=getRequest();
  IValidationDelegate delegate=getValidationDelegate();
  if (!StringUtils.equals(getUser().getPassword(),getUser().getConfirmPassword())) {
    addError(delegate,"String_Node_Str",format("String_Node_Str",getMessage("String_Node_Str"),getMessage("String_Node_Str")),ValidationConstraint.CONSISTENCY);
  }
  if (delegate.getHasErrors()) {
    return;
  }
  String password=getUser().getPassword();
  String originalPassword=getRequest().getParameter("String_Node_Str");
  Boolean encrypt=(Boolean)getConfiguration().get(Constants.ENCRYPT_PASSWORD);
  boolean doEncrypt=(encrypt != null) ? encrypt.booleanValue() : false;
  if (doEncrypt && (StringUtils.equals(getRequest().getParameter("String_Node_Str"),"String_Node_Str") || !StringUtils.equals("String_Node_Str" + password,originalPassword)) || ("String_Node_Str".equals(request.getParameter(("String_Node_Str"))))) {
    String algorithm=(String)getConfiguration().get(Constants.ENC_ALGORITHM);
    if (algorithm == null) {
      log.debug("String_Node_Str");
      algorithm="String_Node_Str";
    }
    getUser().setPassword(StringUtil.encodePassword(password,algorithm));
  }
  boolean fromList=StringUtils.equals(getRequest().getParameter("String_Node_Str"),"String_Node_Str");
  String[] userRoles=null;
  if (fromList) {
    userRoles=getRequest().getParameterValues("String_Node_Str");
  }
 else {
    userRoles=getRequest().getParameterValues("String_Node_Str");
  }
  User user=getUser();
  UserManager userManager=getUserManager();
  user.getRoles().clear();
  for (int i=0; (userRoles != null) && (i < userRoles.length); i++) {
    String roleName=userRoles[i];
    user.addRole(getRoleManager().getRole(roleName));
  }
  try {
    userManager.saveUser(user);
  }
 catch (  UserExistsException e) {
    log.warn(e.getMessage());
    addError(delegate,"String_Node_Str",format("String_Node_Str",user.getUsername(),user.getEmail()),ValidationConstraint.CONSISTENCY);
    getUser().setPassword(user.getConfirmPassword());
    getUser().setVersion(null);
    return;
  }
  HttpSession session=getSession();
  if (!fromList && user.getUsername().equals(getRequest().getRemoteUser())) {
    session.setAttribute(Constants.USER_KEY,user);
    MainMenu nextPage=(MainMenu)cycle.getPage("String_Node_Str");
    nextPage.setMessage(format("String_Node_Str",user.getFullName()));
    cycle.activate(nextPage);
  }
 else {
    if ("String_Node_Str".equals(request.getParameter(("String_Node_Str")))) {
      sendNewUserEmail(request,user);
      UserList nextPage=(UserList)cycle.getPage("String_Node_Str");
      nextPage.setMessage(format("String_Node_Str",user.getFullName()));
      cycle.activate(nextPage);
    }
 else {
      setMessage(format("String_Node_Str",user.getFullName()));
      cycle.activate("String_Node_Str");
    }
  }
}