.executeService(userView, "ChangeCandidate", args);
.executeService(userView, "EditMasterDegreeCandidate", args);
    public ActionForward change(ActionMapping mapping, ActionForm form, HttpServletRequest request,            HttpServletResponse response) throws Exception {        HttpSession session = request.getSession(false);        if (session != null) {            DynaActionForm editCandidateForm = (DynaActionForm) form;            IUserView userView = (IUserView) session.getAttribute(SessionConstants.U_VIEW);            Integer candidateID = (Integer) editCandidateForm.get("candidateID");            // FIXME: Check All if fields are empty            Calendar birthDate = Calendar.getInstance();            Calendar idDocumentIssueDate = Calendar.getInstance();            Calendar idDocumentExpirationDate = Calendar.getInstance();            InfoPerson infoPerson = new InfoPerson();            String day = (String) editCandidateForm.get("birthDay");            String month = (String) editCandidateForm.get("birthMonth");            String year = (String) editCandidateForm.get("birthYear");            if ((day == null) || (month == null) || (year == null) || (day.length() == 0)                    || (month.length() == 0) || (year.length() == 0)) {                infoPerson.setNascimento(null);            } else {                birthDate.set(new Integer(((String) editCandidateForm.get("birthYear"))).intValue(),                        new Integer(((String) editCandidateForm.get("birthMonth"))).intValue(),                        new Integer(((String) editCandidateForm.get("birthDay"))).intValue());                infoPerson.setNascimento(birthDate.getTime());            }            day = (String) editCandidateForm.get("idIssueDateDay");            month = (String) editCandidateForm.get("idIssueDateMonth");            year = (String) editCandidateForm.get("idIssueDateYear");            if ((day == null) || (month == null) || (year == null) || (day.length() == 0)                    || (month.length() == 0) || (year.length() == 0)) {                infoPerson.setDataEmissaoDocumentoIdentificacao(null);            } else {                idDocumentIssueDate.set(new Integer(((String) editCandidateForm.get("idIssueDateYear")))                        .intValue(), new Integer(((String) editCandidateForm.get("idIssueDateMonth")))                        .intValue(), new Integer(((String) editCandidateForm.get("idIssueDateDay")))                        .intValue());                infoPerson.setDataEmissaoDocumentoIdentificacao(idDocumentIssueDate.getTime());            }            day = (String) editCandidateForm.get("idExpirationDateDay");            month = (String) editCandidateForm.get("idExpirationDateMonth");            year = (String) editCandidateForm.get("idExpirationDateYear");            if ((day == null) || (month == null) || (year == null) || (day.length() == 0)                    || (month.length() == 0) || (year.length() == 0)) {                infoPerson.setDataValidadeDocumentoIdentificacao(null);            } else {                idDocumentExpirationDate.set(new Integer(((String) editCandidateForm                        .get("idExpirationDateYear"))).intValue(), new Integer(                        ((String) editCandidateForm.get("idExpirationDateMonth"))).intValue(),                        new Integer(((String) editCandidateForm.get("idExpirationDateDay"))).intValue());                infoPerson.setDataValidadeDocumentoIdentificacao(idDocumentExpirationDate.getTime());            }            InfoCountry nationality = new InfoCountry();            nationality.setNationality((String) editCandidateForm.get("nationality"));            infoPerson.setTipoDocumentoIdentificacao(IDDocumentType.valueOf((String) editCandidateForm                    .get("identificationDocumentType")));            infoPerson.setNumeroDocumentoIdentificacao((String) editCandidateForm                    .get("identificationDocumentNumber"));            infoPerson.setLocalEmissaoDocumentoIdentificacao((String) editCandidateForm                    .get("identificationDocumentIssuePlace"));            infoPerson.setNome((String) editCandidateForm.get("name"));            String sex = (String) editCandidateForm.get("sex");            if ((sex == null) || (sex.length() == 0))                infoPerson.setSexo(null);            else                infoPerson.setSexo(Gender.valueOf(sex));            String maritalStatus = (String) editCandidateForm.get("maritalStatus");            if ((maritalStatus == null) || (maritalStatus.length() == 0))                infoPerson.setMaritalStatus(null);            else                infoPerson.setMaritalStatus(MaritalStatus.valueOf(maritalStatus));            infoPerson.setInfoPais(nationality);            infoPerson.setNomePai((String) editCandidateForm.get("fatherName"));            infoPerson.setNomeMae((String) editCandidateForm.get("motherName"));            infoPerson.setFreguesiaNaturalidade((String) editCandidateForm.get("birthPlaceParish"));            infoPerson.setConcelhoNaturalidade((String) editCandidateForm.get("birthPlaceMunicipality"));            infoPerson.setDistritoNaturalidade((String) editCandidateForm.get("birthPlaceDistrict"));            infoPerson.setMorada((String) editCandidateForm.get("address"));            infoPerson.setLocalidade((String) editCandidateForm.get("place"));            infoPerson.setCodigoPostal((String) editCandidateForm.get("postCode"));            infoPerson.setFreguesiaMorada((String) editCandidateForm.get("addressParish"));            infoPerson.setConcelhoMorada((String) editCandidateForm.get("addressMunicipality"));            infoPerson.setDistritoMorada((String) editCandidateForm.get("addressDistrict"));            infoPerson.setTelefone((String) editCandidateForm.get("telephone"));            infoPerson.setTelemovel((String) editCandidateForm.get("mobilePhone"));            infoPerson.setEmail((String) editCandidateForm.get("email"));            infoPerson.setEnderecoWeb((String) editCandidateForm.get("webSite"));            infoPerson.setNumContribuinte((String) editCandidateForm.get("contributorNumber"));            infoPerson.setProfissao((String) editCandidateForm.get("occupation"));            infoPerson.setUsername((String) editCandidateForm.get("username"));            infoPerson.setLocalidadeCodigoPostal((String) editCandidateForm.get("areaOfAreaCode"));            InfoMasterDegreeCandidate newCandidate = new InfoMasterDegreeCandidate();            newCandidate.setInfoPerson(infoPerson);            newCandidate.setMajorDegree((String) editCandidateForm.get("majorDegree"));            newCandidate.setMajorDegreeSchool((String) editCandidateForm.get("majorDegreeSchool"));            newCandidate.setSpecializationArea((String) editCandidateForm.get("specializationArea"));            String majorDegreeYearString = (String) editCandidateForm.get("majorDegreeYear");            if ((majorDegreeYearString == null) || (majorDegreeYearString.length() == 0))                newCandidate.setMajorDegreeYear(null);            else                newCandidate.setMajorDegreeYear(new Integer(majorDegreeYearString));            String averageString = (String) editCandidateForm.get("average");            if ((averageString != null) && (averageString.length() != 0))                newCandidate.setAverage(new Double(averageString));            else                newCandidate.setAverage(null);            String situation = (String) editCandidateForm.get("situation");            String situationRemarks = (String) editCandidateForm.get("situationRemarks");            InfoCandidateSituation infoCandidateSituation = new InfoCandidateSituation();            infoCandidateSituation.setRemarks(situationRemarks);            infoCandidateSituation.setSituation(new SituationName(situation));            newCandidate.setInfoCandidateSituation(infoCandidateSituation);            Object args[] = { candidateID, newCandidate };            InfoMasterDegreeCandidate infoMasterDegreeCandidateChanged = null;            try {                infoMasterDegreeCandidateChanged = (InfoMasterDegreeCandidate) ServiceManagerServiceFactory                        .executeService(userView, "ChangeCandidate", args);            } catch (ExistingServiceException e) {                throw new ExistingActionException("Esta Person", e);            } catch (FenixServiceException e) {                throw new FenixActionException(e);            }            request.setAttribute(SessionConstants.MASTER_DEGREE_CANDIDATE,                    infoMasterDegreeCandidateChanged);            return mapping.findForward("ChangeSuccess");        }        throw new Exception();    }