Program: 3662
Project: 3662
Buggy source:
/** 
 * Process information from "Personal information page"
 * @param context   current DSpace context
 * @param request   current servlet request object
 * @param response  current servlet response object
 */
private void processPersonalInfo(Context context,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException {
  String key=request.getParameter("String_Node_Str");
  EPerson eperson=AccountManager.getEPerson(context,key);
  if (eperson == null) {
    log.info(LogManager.getHeader(context,"String_Node_Str","String_Node_Str" + key));
    JSPManager.showJSP(request,response,"String_Node_Str");
    return;
  }
  boolean infoOK=EditProfileServlet.updateUserProfile(eperson,request);
  boolean passwordOK=true;
  if (eperson.getRequireCertificate() == false) {
    passwordOK=EditProfileServlet.confirmAndSetPassword(eperson,request);
  }
  if (!infoOK) {
    request.setAttribute("String_Node_Str",new Boolean(true));
  }
  if (!passwordOK) {
    request.setAttribute("String_Node_Str",new Boolean(true));
  }
  request.setAttribute("String_Node_Str",eperson);
  if (infoOK && passwordOK) {
    log.info(LogManager.getHeader(context,"String_Node_Str","String_Node_Str" + eperson.getEmail()));
    AccountManager.deleteToken(context,key);
    eperson.setActive(true);
    eperson.update();
    JSPManager.showJSP(request,response,"String_Node_Str");
    context.complete();
  }
 else {
    request.setAttribute("String_Node_Str",key);
    JSPManager.showJSP(request,response,"String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Process information from "Personal information page"
 * @param context   current DSpace context
 * @param request   current servlet request object
 * @param response  current servlet response object
 */
private void processPersonalInfo(Context context,HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException, SQLException, AuthorizeException {
  String key=request.getParameter("String_Node_Str");
  EPerson eperson=AccountManager.getEPerson(context,key);
  if (eperson == null) {
    log.info(LogManager.getHeader(context,"String_Node_Str","String_Node_Str" + key));
    JSPManager.showJSP(request,response,"String_Node_Str");
    return;
  }
  context.setCurrentUser(eperson);
  boolean infoOK=EditProfileServlet.updateUserProfile(eperson,request);
  boolean passwordOK=true;
  if (eperson.getRequireCertificate() == false) {
    passwordOK=EditProfileServlet.confirmAndSetPassword(eperson,request);
  }
  if (!infoOK) {
    request.setAttribute("String_Node_Str",new Boolean(true));
  }
  if (!passwordOK) {
    request.setAttribute("String_Node_Str",new Boolean(true));
  }
  request.setAttribute("String_Node_Str",eperson);
  if (infoOK && passwordOK) {
    log.info(LogManager.getHeader(context,"String_Node_Str","String_Node_Str" + eperson.getEmail()));
    AccountManager.deleteToken(context,key);
    eperson.setActive(true);
    eperson.update();
    JSPManager.showJSP(request,response,"String_Node_Str");
    context.complete();
  }
 else {
    request.setAttribute("String_Node_Str",key);
    JSPManager.showJSP(request,response,"String_Node_Str");
  }
}