Мой исходный код:
package JavaRush;

import java.util.ArrayList;
import java.util.Scanner;

/*
Программа вводит строки, пока пользователь не введёт пустую строку (нажав enter).
Потом программа строит новый список. Если в строке чётное число букв, строка удваивается, если нечётное - утраивается.
Программа выводит содержимое нового списка на экран.
 */
public class Solution {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        Scanner scr = new Scanner(System.in);
        while (true){
            String str = scr.nextLine();
            if (str ==  null || str.isEmpty()) break;
            list.add(str);
        }
        ArrayList<String> oddEven = new ArrayList<>();
        for (int i = 0; i < list.size(); i++){
            if (list.get(i).length()%2==0){
                oddEven.add(list.get(i).concat(" " + list.get(i)));
            }
            else
                oddEven.add(list.get(i).concat(" " + list.get(i)+ " " + list.get(i)));

        }
        for (String x : oddEven) System.out.println(x);
    }
}
Вот что в окне вывода валидатора мне выдаёт:
java.util.NoSuchElementException: No line found
	at java.util.Scanner.nextLine(Scanner.java:1540)
	at com.javarush.task.task07.task0727.Solution.main(Solution.java:18)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
Стоит заменить Scanner на BufferedReader, тогда программа прекрасно компилируется и проходит проверку. Моё же решение со Scanner'ом в IDEA также работает. Ошибка в 18 строчке, но почему? Я не понимаю, но хочу понять причину ошибки. Хотелось бы услышать адекватное объяснение возникшей проблемы, благодарю!