IStudentCurricularPlan studentCurricularPlan = Cloner .copyInfoStudentCurricularPlan2IStudentCurricularPlan(infoStudentCurricularPlan);
IStudentCurricularPlan studentCurricularPlan = (IStudentCurricularPlan) sp .getIStudentCurricularPlanPersistente().readByOID(StudentCurricularPlan.class, studentCurricularPlanID);
    public InfoMasterDegreeProofVersion run(InfoStudentCurricularPlan infoStudentCurricularPlan)            throws FenixServiceException {        InfoMasterDegreeProofVersion infoMasterDegreeProofVersion = null;        try {            ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            IStudentCurricularPlan studentCurricularPlan = Cloner                    .copyInfoStudentCurricularPlan2IStudentCurricularPlan(infoStudentCurricularPlan);            IDegreeCurricularPlanStrategyFactory degreeCurricularPlanStrategyFactory = DegreeCurricularPlanStrategyFactory                    .getInstance();            IMasterDegreeCurricularPlanStrategy masterDegreeCurricularPlanStrategy = (IMasterDegreeCurricularPlanStrategy) degreeCurricularPlanStrategyFactory                    .getDegreeCurricularPlanStrategy(studentCurricularPlan.getDegreeCurricularPlan());            if (!masterDegreeCurricularPlanStrategy.checkEndOfScholarship(studentCurricularPlan))                throw new ScholarshipNotFinishedServiceException(                        "error.exception.masterDegree.scholarshipNotFinished");            IMasterDegreeProofVersion masterDegreeProofVersion = sp                    .getIPersistentMasterDegreeProofVersion().readActiveByStudentCurricularPlan(                            studentCurricularPlan);            if (masterDegreeProofVersion == null)                throw new NonExistingServiceException(                        "error.exception.masterDegree.nonExistingMasterDegreeProofVersion");            IBranch branch =				masterDegreeProofVersion					.getMasterDegreeThesis()					.getStudentCurricularPlan()					.getBranch();			if (branch != null) {				branch.getIdInternal();			}			infoMasterDegreeProofVersion =				Cloner					.copyIMasterDegreeProofVersion2InfoMasterDegreeProofVersion(					masterDegreeProofVersion);		} catch (ExcepcaoPersistencia ex) {			FenixServiceException newEx =				new FenixServiceException("Persistence layer error");			newEx.fillInStackTrace();			throw newEx;		}		return infoMasterDegreeProofVersion;    }