public ActionForward nextPagePublic(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws FenixActionException {
    DynaActionForm escolherContextoForm = (DynaActionForm) form;

    InfoExecutionPeriod infoExecutionPeriod =
        (InfoExecutionPeriod) request.getAttribute(PresentationConstants.EXECUTION_PERIOD);

    Integer semestre = infoExecutionPeriod.getSemester();
    Integer anoCurricular = (Integer) escolherContextoForm.get("curYear");

    // Integer degreeCurricularPlanId =
    // getFromRequest("degreeCurricularPlanID", request);
    request.setAttribute("degreeCurricularPlanID", "");

    // Integer degreeId = getFromRequest("degreeID", request);
    request.setAttribute("degreeID", "");

    Integer index = Integer.valueOf((String) escolherContextoForm.get("index"));

    request.setAttribute("curYear", anoCurricular);
    request.setAttribute("semester", semestre);

    List infoExecutionDegreeList;
    infoExecutionDegreeList =
        ReadExecutionDegreesByExecutionYear.run(infoExecutionPeriod.getInfoExecutionYear());
    Collections.sort(infoExecutionDegreeList, new ComparatorByNameForInfoExecutionDegree());

    InfoExecutionDegree infoExecutionDegree =
        (InfoExecutionDegree) infoExecutionDegreeList.get(index.intValue());
    request.setAttribute(PresentationConstants.EXECUTION_DEGREE, infoExecutionDegree);

    if (infoExecutionDegree == null) {
      return mapping.findForward("Licenciatura execucao inexistente");
    }

    RequestUtils.setExecutionDegreeToRequest(request, infoExecutionDegree);

    String nextPage = request.getParameter("nextPage");

    if (nextPage != null) {
      return mapping.findForward(nextPage);
    }

    // TODO : throw a proper exception
    throw new FenixActionException("SomeOne is messing around with the links");
  }