.getInfoExecutionDegreesList(), messageResources));
.getInfoExecutionDegreesList(), messageResources, request));
    public ActionForward prepareShiftEnrollment(ActionMapping mapping, ActionForm form,            HttpServletRequest request, HttpServletResponse response) throws Exception {        IUserView userView = SessionUtils.getUserView(request);        String classID = request.getParameter("classId");        if(classID != null){            Integer studentID = new Integer((String)request.getParameter("studentId"));            request.setAttribute("studentId",studentID);            request.setAttribute("classId",new Integer(classID));            return mapping.findForward("showEnrollmentPage");        }                DynaActionForm enrolmentForm = (DynaActionForm) form;        Integer executionDegreeIdChosen = (Integer) enrolmentForm.get("degree");        String studentNumber = obtainStudentNumber(request, userView);        InfoShiftEnrollment infoShiftEnrollment = null;        Object[] args = { Integer.valueOf(studentNumber), executionDegreeIdChosen };        try {        	infoShiftEnrollment = (InfoShiftEnrollment) ServiceManagerServiceFactory.executeService(        			userView, "PrepareInfoShiftEnrollmentByStudentNumber", args);        } catch(FenixServiceException e) {        	ActionErrors actionErrors = new ActionErrors();        	actionErrors.add("noTuitonPayed", new ActionError(e.getMessage()));            saveErrors(request, actionErrors);        	return mapping.getInputForward();        }        // inicialize the form with the degree chosen and student number        enrolmentForm.set("degree", infoShiftEnrollment.getInfoExecutionDegree().getIdInternal());        enrolmentForm.set("studentId", infoShiftEnrollment.getInfoStudent().getIdInternal());        request.setAttribute("infoShiftEnrollment", infoShiftEnrollment);        Object[] args1 = { Integer.valueOf(studentNumber) };        List<InfoNewShiftEnrollment> infoNewShiftsEnrollment = (List) ServiceManagerServiceFactory                .executeService(userView, "ReadShiftsToEnroll", args1);        List<InfoNewShiftEnrollment> infoEnrolledNewShiftsEnrollment = (List<InfoNewShiftEnrollment>) CollectionUtils                .select(infoNewShiftsEnrollment, new Predicate() {                    public boolean evaluate(Object arg0) {                        InfoNewShiftEnrollment infoNewShiftEnrollment = (InfoNewShiftEnrollment) arg0;                        return infoNewShiftEnrollment.getEnrolled();                    }                });        List<InfoNewShiftEnrollment> infoNotEnrolledNewShiftsEnrollment = (List<InfoNewShiftEnrollment>) CollectionUtils.subtract(                infoNewShiftsEnrollment, infoEnrolledNewShiftsEnrollment);        request.setAttribute("infoEnrolledNewShiftEnrollmentList", infoEnrolledNewShiftsEnrollment);        request.setAttribute("infoNotEnrolledNewShiftEnrollmentList", infoNotEnrolledNewShiftsEnrollment);        String selectCourses = checkParameter(request);        // order degree's list and format them names        if (selectCourses != null) {            if (infoShiftEnrollment.getInfoExecutionDegreesList() != null                    && infoShiftEnrollment.getInfoExecutionDegreesList().size() > 0) {                Collections.sort(infoShiftEnrollment.getInfoExecutionDegreesList(),                        new ComparatorByNameForInfoExecutionDegree());                MessageResources messageResources = this.getResources(request, "ENUMERATION_RESOURCES");                infoShiftEnrollment.setInfoExecutionDegreesLabelsList(ExecutionDegreesFormat                        .buildExecutionDegreeLabelValueBean(infoShiftEnrollment                                .getInfoExecutionDegreesList(), messageResources));            }            return mapping.findForward("selectCourses");        }        return mapping.findForward("showShiftsEnrollment");    }