Не понимаю, в чём может быть ошибка. Программа выполняется правильно. Я проверял правильность порядка частей файла (именно для этого использовал TreeMap, а не TreeSet). Валидатор пишет, что не выполнены 2, 3, 4 и 5 условия, но они явно выполнены!