IDegreeCurricularPlan degreeCurricularPlan = (IDegreeCurricularPlan) suportePersistente .getIPersistentDegreeCurricularPlan().readByOID(DegreeCurricularPlan.class, degreeCurricularPlanID);
infoDegreeInfo.recaptureNULLs(degreeInfo);
    public InfoDegreeInfo run(Integer degreeCurricularPlanID) throws FenixServiceException {        InfoDegreeInfo infoDegreeInfo = new InfoDegreeInfo();        infoDegreeInfo.setIdInternal(new Integer(0));        try {            if (degreeCurricularPlanID == null) {                throw new FenixServiceException("error.invalidDegreeCurricularPlan");            }            ISuportePersistente suportePersistente = PersistenceSupportFactory.getDefaultPersistenceSupport();            // Degree curricular plan            IDegreeCurricularPlan degreeCurricularPlan = (IDegreeCurricularPlan) suportePersistente                    .getIPersistentDegreeCurricularPlan().readByOID(DegreeCurricularPlan.class,                            degreeCurricularPlanID);            if (degreeCurricularPlan == null) {                throw new FenixServiceException("error.invalidDegreeCurricularPlan");            }            if (degreeCurricularPlan.getDegree() == null) {                throw new FenixServiceException("error.invalidDegreeCurricularPlan");            }            //Degree            IDegree degree = degreeCurricularPlan.getDegree();            if (degree == null) {                throw new FenixServiceException("error.impossibleDegreeInfo");            }            //Read degree information            List degreeInfoList = degree.getDegreeInfos();            //Last information about this degree            if (degreeInfoList != null && degreeInfoList.size() > 0) {                Collections.sort(degreeInfoList, new BeanComparator("lastModificationDate"));                IDegreeInfo degreeInfo = (IDegreeInfo) degreeInfoList.get(degreeInfoList.size() - 1);                infoDegreeInfo = InfoDegreeInfo.newInfoFromDomain(degreeInfo);                infoDegreeInfo.recaptureNULLs(degreeInfo);                //return the degree info with the last modification date                //even if this degree info doesn't belong at execution period                // used.            }        } catch (Exception e) {            e.printStackTrace();            throw new FenixServiceException(e);        }        return infoDegreeInfo;    }