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. Но он и так отсортирован, в этом и суть!