public List run(String executionYearString) throws FenixServiceException {
public List run(String executionYearString) throws FenixServiceException, ExcepcaoPersistencia { final ISuportePersistente sp = PersistenceSupportFactory.getDefaultPersistenceSupport();
    public List run(String executionYearString) throws FenixServiceException {        ISuportePersistente sp = null;        List result = new ArrayList();        try {            sp = PersistenceSupportFactory.getDefaultPersistenceSupport();            // Get the Actual Execution Year            IExecutionYear executionYear = null;            if (executionYearString != null) {                executionYear = sp.getIPersistentExecutionYear().readExecutionYearByName(                        executionYearString);            } else {                IPersistentExecutionYear executionYearDAO = sp.getIPersistentExecutionYear();                executionYear = executionYearDAO.readCurrentExecutionYear();            }            // Read the degrees            result = sp.getIPersistentExecutionDegree().readMasterDegrees(executionYear.getYear());            if (result == null || result.size() == 0) {                throw new NonExistingServiceException();            }        } catch (ExcepcaoPersistencia ex) {            FenixServiceException newEx = new FenixServiceException("Persistence layer error");            newEx.fillInStackTrace();            throw newEx;        }        List degrees = new ArrayList();        Iterator iterator = result.iterator();        while (iterator.hasNext()) {            IExecutionDegree executionDegree = (IExecutionDegree) iterator.next();            InfoExecutionDegree infoExecutionDegree = InfoExecutionDegree.newInfoFromDomain(executionDegree);            degrees.add(infoExecutionDegree);        }        return degrees;    }