public ActionForward fillCandidacyInformation( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { final IndividualCandidacyProcessBean bean = getIndividualCandidacyProcessBean(); request.setAttribute(getIndividualCandidacyProcessBeanName(), bean); if (!StringUtils.isEmpty(bean.getPersonBean().getSocialSecurityNumber())) { Party existingSocialSecurityNumberParty = Person.readByContributorNumber(bean.getPersonBean().getSocialSecurityNumber()); if (existingSocialSecurityNumberParty != null && existingSocialSecurityNumberParty != bean.getPersonBean().getPerson()) { // found person with same contributor number addActionMessage(request, "error.party.existing.contributor.number"); return mapping.findForward("fill-personal-information"); } } try { DegreeOfficePublicCandidacyHashCode candidacyHashCode = DegreeOfficePublicCandidacyHashCodeOperations.getUnusedOrCreateNewHashCode( getProcessType(), getParentProcess(request), bean.getPersonBean().getEmail()); bean.setPublicCandidacyHashCode(candidacyHashCode); } catch (HashCodeForEmailAndProcessAlreadyBounded e) { addActionMessage(request, "error.candidacy.hash.code.already.bounded"); return mapping.findForward("fill-personal-information"); } return mapping.findForward("fill-candidacy-information"); }