InfoExecutionPeriod infoExecutionPeriod = (InfoExecutionPeriod) Cloner .get(executionPeriod);
InfoExecutionPeriod infoExecutionPeriod = InfoExecutionPeriodWithInfoExecutionYear.newInfoFromDomain(executionPeriod);
    public List run(InfoExecutionYear infoExecutionYear) throws FenixServiceException {        List result = new ArrayList();        try {            ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            IPersistentExecutionPeriod executionPeriodDAO = sp.getIPersistentExecutionPeriod();            IPersistentExecutionYear executionYearDAO = sp.getIPersistentExecutionYear();            IExecutionYear executionYear;            List executionPeriods;            if (infoExecutionYear == null) {                executionYear = executionYearDAO.readCurrentExecutionYear();                executionPeriods = executionPeriodDAO.readNotClosedPublicExecutionPeriodsByExecutionYears(executionYear.getIdInternal());            } else {                executionPeriods = executionPeriodDAO.readNotClosedPublicExecutionPeriodsByExecutionYears(infoExecutionYear.getIdInternal());            }            result = (List) CollectionUtils.collect(executionPeriods, new Transformer() {                public Object transform(Object input) {                    IExecutionPeriod executionPeriod = (IExecutionPeriod) input;                    InfoExecutionPeriod infoExecutionPeriod = (InfoExecutionPeriod) Cloner                            .get(executionPeriod);                    return infoExecutionPeriod;                }            });        } catch (ExcepcaoPersistencia ex) {            throw new FenixServiceException(ex);        }        return result;    }