Такой вариант валидатор не принял:
while(iterator.hasNext()) {
    if (iterator.next().getValue().getMonth() > 4 && iterator.next().getValue().getMonth() < 8) iterator.remove();
}
А такой принял:
while(iterator.hasNext()) {
    int summer = iterator.next().getValue().getMonth();
    if (summer > 4 && summer < 8) iterator.remove();
}
В чем разница?