Всем привет! Подскажите пожалуйста, почему задача не проходит валидацию? Может где то затаилась ошибка? Задача не проходит последний пункт, хотя работает корректно
Список lines должен содержать объединенную версию строк из файлов, где для каждой строки указана одна из операций ADDED, REMOVED, SAME.
Условие
Требования:
1. Класс Solution должен содержать класс LineItem.
2. Класс Solution должен содержать enum Type.
3. Класс Solution должен содержать публичное статическое поле lines типа List, которое сразу проинициализировано.
4. В методе main(String[] args) программа должна считывать имена файлов с консоли (используй BufferedReader).
5. В методе main(String[] args) BufferedReader для считывания данных с консоли должен быть закрыт.
6. Программа должна считывать содержимое первого и второго файла (используй FileReader).
7. Потоки чтения из файлов (FileReader) должны быть закрыты.
8. Список lines должен содержать объединенную версию строк из файлов, где для каждой строки указана одна из операций ADDED, REMOVED, SAME.
Код
package com.javarush.task.task19.task1916;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

/*
Отслеживаем изменения
*/

public class Solution {
    public static List<LineItem> lines = new ArrayList<LineItem>();

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<String> list1 = new ArrayList<String>();
        ArrayList<String> list2 = new ArrayList<String>();
        String f1 = reader.readLine();
        String f2 = reader.readLine();
        reader.close();
        String line1, line2 = "", cs1 = "", cs2 = "";

        BufferedReader br1 = null;
        br1 = new BufferedReader(new FileReader(f1));
        while ((line1 = br1.readLine()) != null)
            list1.add(line1);
        br1.close();
        br1 = new BufferedReader(new FileReader(f2));
        while ((line2 = br1.readLine()) != null)
            list2.add(line2);
        br1.close();
        int max;
        if (list1.size() >= list2.size())
            max = list1.size();
        else max = list2.size();
        for (int i = 0; i < max; i++) {
            try {
                cs1 = list1.get(i);
            } catch (IndexOutOfBoundsException e) {
                cs1 = "";
            }
            try {
                cs2 = list2.get(i);
            } catch (IndexOutOfBoundsException e) {
                cs2 = "";
            }
            if (cs1.equals(cs2))
                lines.add(new LineItem(Type.SAME, cs1));
            else if ((!cs1.equals("")) && (cs2.equals("")))
                lines.add(new LineItem(Type.REMOVED, cs1));
            else if ((cs1.equals("")) && (!cs2.equals("")))
                lines.add(new LineItem(Type.ADDED, cs2));
        }
        /*
        for (int i = 0; i < list1.size(); i++)
            System.out.println(list1.get(i));
        System.out.println("----------------------");
        for (int i = 0; i < list2.size(); i++)
            System.out.println(list2.get(i));
        for (int i = 0; i < lines.size(); i++)
            System.out.println(lines.get(i).type + lines.get(i).line);
            */
    }


    public static enum Type {
        ADDED,        //добавлена новая строка
        REMOVED,      //удалена строка
        SAME          //без изменений
    }

    public static class LineItem {
        public Type type;
        public String line;

        public LineItem(Type type, String line) {
            this.type = type;
            this.line = line;
        }
    }
}