Program: 84515
Project: 84515
Buggy source:
/** 
 * @see org.springframework.web.servlet.mvc.AbstractFormController#processFormSubmission(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,java.lang.Object,org.springframework.validation.BindException)
 */
protected ModelAndView processFormSubmission(HttpServletRequest request,HttpServletResponse response,Object obj,BindException errors) throws Exception {
  Person person=(Person)obj;
  if (!Context.isAuthenticated()) {
    errors.reject("String_Node_Str");
  }
 else {
    if (person.getPersonName().getGivenName() == "String_Node_Str")     errors.rejectValue("String_Node_Str","String_Node_Str");
    if (person.getPersonName().getFamilyName() == "String_Node_Str")     errors.rejectValue("String_Node_Str","String_Node_Str");
    if (person.getGender() == null || person.getGender().equals("String_Node_Str"))     errors.rejectValue("String_Node_Str","String_Node_Str");
    for (    PersonAttributeType type : Context.getPersonService().getPersonAttributeTypes(PERSON_TYPE.PERSON,null)) {
      String paramName=type.getPersonAttributeTypeId().toString();
      String value=request.getParameter(paramName);
      if (value != null) {
        PersonAttribute attribute=new PersonAttribute(type,value);
        try {
          Object hydratedObject=attribute.getHydratedObject();
          if (hydratedObject == null || "String_Node_Str".equals(hydratedObject.toString())) {
            attribute.setValue("String_Node_Str");
          }
 else           if (hydratedObject instanceof Attributable) {
            attribute.setValue(((Attributable)hydratedObject).serialize());
          }
 else           if (!hydratedObject.getClass().getName().equals(type.getFormat()))           throw new APIException();
        }
 catch (        APIException e) {
          errors.rejectValue("String_Node_Str","String_Node_Str" + type.getName() + "String_Node_Str"+ value+ "String_Node_Str");
          log.warn("String_Node_Str" + value + "String_Node_Str"+ paramName,e);
          attribute.setValue("String_Node_Str");
        }
        person.addAttribute(attribute);
      }
    }
    if (person.getBirthdate() != null) {
      if (person.getBirthdate().after(new Date()))       errors.rejectValue("String_Node_Str","String_Node_Str");
 else {
        Calendar c=Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.YEAR,-120);
        if (person.getBirthdate().before(c.getTime())) {
          errors.rejectValue("String_Node_Str","String_Node_Str");
        }
      }
    }
    if (person.isPersonVoided())     ValidationUtils.rejectIfEmptyOrWhitespace(errors,"String_Node_Str","String_Node_Str");
    if (person.isDead() && (person.getCauseOfDeath() == null))     errors.rejectValue("String_Node_Str","String_Node_Str");
  }
  if (log.isDebugEnabled())   log.debug("String_Node_Str" + person.printAttributes());
  return super.processFormSubmission(request,response,person,errors);
}

Fixed version (ground truth):
/** 
 * @see org.springframework.web.servlet.mvc.AbstractFormController#processFormSubmission(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,java.lang.Object,org.springframework.validation.BindException)
 */
protected ModelAndView processFormSubmission(HttpServletRequest request,HttpServletResponse response,Object obj,BindException errors) throws Exception {
  Person person=(Person)obj;
  if (!Context.isAuthenticated()) {
    errors.reject("String_Node_Str");
  }
 else {
    if (person.getPersonName().getGivenName().trim().equals("String_Node_Str"))     errors.rejectValue("String_Node_Str","String_Node_Str");
    if (person.getPersonName().getFamilyName().trim().equals("String_Node_Str"))     errors.rejectValue("String_Node_Str","String_Node_Str");
    if (person.getGender() == null || person.getGender().equals("String_Node_Str"))     errors.rejectValue("String_Node_Str","String_Node_Str");
    for (    PersonAttributeType type : Context.getPersonService().getPersonAttributeTypes(PERSON_TYPE.PERSON,null)) {
      String paramName=type.getPersonAttributeTypeId().toString();
      String value=request.getParameter(paramName);
      if (value != null) {
        PersonAttribute attribute=new PersonAttribute(type,value);
        try {
          Object hydratedObject=attribute.getHydratedObject();
          if (hydratedObject == null || "String_Node_Str".equals(hydratedObject.toString())) {
            attribute.setValue("String_Node_Str");
          }
 else           if (hydratedObject instanceof Attributable) {
            attribute.setValue(((Attributable)hydratedObject).serialize());
          }
 else           if (!hydratedObject.getClass().getName().equals(type.getFormat()))           throw new APIException();
        }
 catch (        APIException e) {
          errors.rejectValue("String_Node_Str","String_Node_Str" + type.getName() + "String_Node_Str"+ value+ "String_Node_Str");
          log.warn("String_Node_Str" + value + "String_Node_Str"+ paramName,e);
          attribute.setValue("String_Node_Str");
        }
        person.addAttribute(attribute);
      }
    }
    if (person.getBirthdate() != null) {
      if (person.getBirthdate().after(new Date()))       errors.rejectValue("String_Node_Str","String_Node_Str");
 else {
        Calendar c=Calendar.getInstance();
        c.setTime(new Date());
        c.add(Calendar.YEAR,-120);
        if (person.getBirthdate().before(c.getTime())) {
          errors.rejectValue("String_Node_Str","String_Node_Str");
        }
      }
    }
    if (person.isPersonVoided())     ValidationUtils.rejectIfEmptyOrWhitespace(errors,"String_Node_Str","String_Node_Str");
    if (person.isDead() && (person.getCauseOfDeath() == null))     errors.rejectValue("String_Node_Str","String_Node_Str");
  }
  if (log.isDebugEnabled())   log.debug("String_Node_Str" + person.printAttributes());
  return super.processFormSubmission(request,response,person,errors);
}