InfoDegreeInfo infoDegreeInfo = new InfoDegreeInfo();
InfoDegreeInfo infoDegreeInfo = null;
    public InfoDegreeInfo run(Integer degreeCurricularPlanID) throws FenixServiceException,            ExcepcaoPersistencia {        if (degreeCurricularPlanID == null) {            throw new FenixServiceException("error.invalidDegreeCurricularPlan");        }        ISuportePersistente suportePersistente = PersistenceSupportFactory                .getDefaultPersistenceSupport();        // Degree curricular plan        IDegreeCurricularPlan degreeCurricularPlan = (IDegreeCurricularPlan) suportePersistente                .getIPersistentDegreeCurricularPlan().readByOID(DegreeCurricularPlan.class,                        degreeCurricularPlanID);        // Read degree information        List<IDegreeInfo> degreeInfoList = degreeCurricularPlan.getDegree().getDegreeInfos();        InfoDegreeInfo infoDegreeInfo = new InfoDegreeInfo();        // Last information about this degree        if (degreeInfoList != null && !degreeInfoList.isEmpty()) {            Collections.sort(degreeInfoList, new BeanComparator("lastModificationDate"));            IDegreeInfo degreeInfo = (IDegreeInfo) degreeInfoList.get(degreeInfoList.size() - 1);            infoDegreeInfo = InfoDegreeInfo.newInfoFromDomain(degreeInfo);            infoDegreeInfo.recaptureNULLs(degreeInfo);        }        return infoDegreeInfo;    }