public ActionForward proceedToShiftEnrolment(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
public ActionForward proceedToShiftEnrolment( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws FenixActionException {
	public ActionForward proceedToShiftEnrolment(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {		// inscrever nas cadeiras 		// EXPLICAO: supostamente haveria um passo intermedio onde se inscreve nas cadeiras que escolheu antes de escolher as turmas		//                        mas acho q deixou de ser necessrio ao tratar disso na action anterior. ou no...                            		HttpSession session = request.getSession();		IUserView userView = (IUserView) session.getAttribute(SessionConstants.U_VIEW);		// retrieve the student information to fill the info 		// to be passed to the readShifts service		InfoStudent infoStudent = null;		infoStudent = (InfoStudent) ServiceUtils.executeService(userView, "ReadStudentByUsername", new Object[] { userView.getUtilizador()});		//Update the student's attending courses:		String[] wantedCourses = ((String[]) ((DynaActionForm) form).get("wantedCourse"));		if (wantedCourses != null) {			//Build up the arrayList			List newAttendingCourses = new ArrayList(wantedCourses.length);			for (int i = 0; i < wantedCourses.length; i++) {				newAttendingCourses.add(i, wantedCourses[i]);			} // end of for (int  = 0;  < ; ++)			Boolean attendenceChanged = (Boolean) (ServiceUtils.executeService(userView, "WriteStudentAttendingCourses", new Object[] { infoStudent, newAttendingCourses }));			if (!attendenceChanged.booleanValue()) {				System.out.println("Nao foi possivel actualizar as disciplinas do aluno");				throw new FenixActionException("Can't Change Degree Attending.");			}		}		return initializeShiftEnrolment(mapping, form, request, response);	}