}
public ActionForward selectiveDownload(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws FenixActionException, IOException, ServletException {
final Project project = getProject(request);
final Integer startIndex = Integer.valueOf(request.getParameter("startIndex"));
final Integer pageSize = Integer.valueOf(request.getParameter("size"));
final List<ProjectSubmission> projectSubmissions =
new ArrayList<ProjectSubmission>(project.getLastProjectSubmissionForEachStudentGroup());
Collections.sort(projectSubmissions, ProjectSubmission.COMPARATOR_BY_MOST_RECENT_SUBMISSION_DATE);
Integer finishIndex = Math.min(projectSubmissions.size(), startIndex + pageSize);
final List<ProjectSubmission> subList = projectSubmissions.subList(startIndex, finishIndex);
Archive archive = new DiskZipArchive(response, project.getName() + "-" + (startIndex + 1) + "-" + finishIndex);
Fetcher fetcher = new Fetcher(archive, request, response);
for (ProjectSubmission submission : subList) {
StudentGroup group = submission.getStudentGroup();