chainComparator.addComparator(new BeanComparator("infoExecutionYear.year"));
chainComparator.addComparator(new BeanComparator("infoExecutionYear.year"), true);
    public List getExecutionPeriods() throws FenixFilterException, FenixServiceException {            List<InfoExecutionPeriod> infoExecutionPeriods = (List<InfoExecutionPeriod>) ServiceUtils                .executeService(getUserView(), "ReadNotClosedExecutionPeriods", null);        ComparatorChain chainComparator = new ComparatorChain();        chainComparator.addComparator(new BeanComparator("infoExecutionYear.year"));        chainComparator.addComparator(new BeanComparator("semester"));        Collections.sort(infoExecutionPeriods, chainComparator);        List<SelectItem> executionPeriodItems = new ArrayList<SelectItem>(infoExecutionPeriods.size());        executionPeriodItems.add(new SelectItem(0, this.chooseMessage));        for (InfoExecutionPeriod infoExecutionPeriod : infoExecutionPeriods) {            String label = infoExecutionPeriod.getName() + " - "                    + infoExecutionPeriod.getInfoExecutionYear().getYear();            executionPeriodItems.add(new SelectItem(infoExecutionPeriod.getIdInternal(), label));        }        return executionPeriodItems;    }