Непонятно все работает! Переделал вот так ! программа работает а валидатор не принимает те же ошибки
public static final List<Person> PEOPLE = new ArrayList<Person>();

    public static void main(String[] args) throws IOException, ParseException {
        BufferedReader bufferedReader = new BufferedReader(new FileReader(args[0]));
        Pattern pattern = Pattern.compile("([\\D+\\s*]+)([\\d+\\s*]+)");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd MM yyyy", Locale.ENGLISH);
String strok="";
        while (bufferedReader.ready()) {
         strok += bufferedReader.readLine();
        }bufferedReader.close();
        Matcher matcher = pattern.matcher(strok);
            while (matcher.find()) {
                if (!matcher.group(0).trim().isEmpty()) {
                PEOPLE.add(new Person(matcher.group(1),
        simpleDateFormat.parse(matcher.group(2))));
                }
            }

//            for (int i = 0; i < PEOPLE.size(); i++) {
//                System.out.println(PEOPLE.get(i).getBirthday() + " " +
//                         PEOPLE.get(i).getName());
//          }


    }}
Убедись, что из файла в список PEOPLE правильно добавляются имена. Программа должна правильно работать с двойными именами, например Анна-Надежда. Вывод программы в консоль
Thu Dec 31 00:00:00 EET 1987 Иванов Иван Иванович
Wed May 15 00:00:00 EEST 2013 Вася