Где ошибка?
package com.javarush.task.task17.task1721;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Транзакционность
1. Класс Solution должен содержать public static поле allLines типа List<String>.
2. Класс Solution должен содержать public static поле forRemoveLines типа List<String>.
3. Класс Solution должен содержать public void метод joinData() который может бросать исключение CorruptedDataException.
4. Программа должна считывать c консоли имена двух файлов.
5. Программа должна считывать построчно данные из первого файла в список allLines.
6. Программа должна считывать построчно данные из второго файла в список forRemoveLines.
7. Метод joinData должен удалить в списке allLines все строки из списка forRemoveLines, если в allLines содержаться все строки из списка forRemoveLines.
8. Метод joinData должен очистить список allLines и выбросить исключение CorruptedDataException, если в allLines не содержаться все строки из списка forRemoveLines.
9. Метод joinData должен вызываться в main.
*/
public class Solution {
public static List<String> allLines = new ArrayList<String>();
public static List<String> forRemoveLines = new ArrayList<String>();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s = reader.readLine();
String word = reader.readLine();
BufferedReader rd2 = new BufferedReader(new FileReader(s));
while (rd2.ready()) {
allLines.add(rd2.readLine());
}
rd2 = new BufferedReader(new FileReader(word));
while (rd2.ready()) {
forRemoveLines.add(rd2.readLine());
}
reader.close();
rd2.close();
try {
Solution solution = new Solution();
solution.joinData();
} catch (CorruptedDataException e) {
}
}
public void joinData() throws CorruptedDataException {
if (allLines.containsAll(forRemoveLines)) {
allLines.removeAll(forRemoveLines);
} else
allLines.clear();
throw new CorruptedDataException();
}
}