Подскажите пожалуйста, что тут не так? Результаты с разными тестовыми значениями соответствуют ожидаемым, но при этом валидатор ругается.
int max = 0;
if (lines1.size() > lines2.size()) {
    max = lines1.size();
} else max = lines2.size();

for (int i = 0; i < max; i++) {
    try {
        lines1.get(i);
    } catch (IndexOutOfBoundsException e) {
        lines.add(new LineItem(Type.ADDED, lines2.get(i)));
        continue;
    }
    try {
        lines2.get(i);
    } catch (IndexOutOfBoundsException e) {
        lines.add(new LineItem(Type.REMOVED, lines1.get(i)));
        continue;
    }
    if ((lines1.get(i)).equals(lines2.get(i))) {
        lines.add(new LineItem(Type.SAME, lines2.get(i)));
    } else if (!lines2.get(i).equals("") && lines2.get(i) != null && !lines2.get(i).equals(lines1.get(i))) {
        lines.add(new LineItem(Type.ADDED, lines2.get(i)));
    } else if ((lines2.get(i).equals("") || lines2.get(i) == null) && !lines2.get(i).equals(lines1.get(i))) {
        lines.add(new LineItem(Type.REMOVED, lines1.get(i)));
    }
}