SOS !Встречаемость символов! 8 уровень, 11 лекция

Решил эту задачу, проверил, все работает, но валидатор отправил меня в далекое плаванье с моим решением. Подскажите, пожалуйста, что не так, а то у меня уже третий день горит.
Вот код:
public class Solution {
public static void main(String[] args) throws Exception{
TreeMap<Integer, Integer> map = new TreeMap<>();
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
while (reader.ready()) {
char[] array = reader.readLine().toCharArray();
for (char letter: array) {
if(map.get((int)letter) == null)
map.put((int)letter, 1);
else {
int a = map.get((int)letter);
a++;
map.put((int)letter, a);
}
}
}
reader.close();
char a;
int i;
for (Map.Entry<Integer, Integer> pair: map.entrySet()) {
i = pair.getKey();
a = (char) i;
System.out.println( a + " " + pair.getValue());
}
reader.close();
}
}
Говорит, мол, вывод должен быть отсортирован по возрастанию кода ASCII. Но он и так отсортирован, в этом и суть!
  • ,

Не понемаю, что не так(

При добавлении и обновлении персоны, последний аргумент считается датой, предпоследний полом.
При выводе удаленной персоны, на экран выводится «null null null». Если так не правильно, тогда как выводить удаленного?
Уже как только не переделывал — и свитч вместо ифов и статические функции для для операций. Писал тестовые случаи, дебажил. Все работает, но не принемается.
Код под катом…