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();
fetcher.queue(new Resource(group.getGroupNumber() + getStudentsISTID(group) + "/"
+ submission.getProjectSubmissionFile().getFilename(), submission.getProjectSubmissionFile().getDownloadUrl()));
}
fetcher.process();
archive.finish();
return null;
}