Непонятная зависимость буфера ввода от выходного потока (Java)

import java.util.Scanner;
import java.io.IOException;

public class TestClass2 {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        int drop;
        String str;

        do {
            drop = System.in.read();
        } while(drop != (int)'\n');

        //System.out.println();
        str = sc.nextLine();
        System.out.println(str);
    }
}

Вопрос простой. Почему, если раскомментировать строку после цикла, сканер исправно возвращает переменной str данные с консоли? А если оставить строку закомментированной, то переменная получает значение пустой строки?

Уточнение1. Эффект имеет место в IntelliJ Idea Build #IC-221.5591.52, built on May 10, 2022. При использовании Notepad++ и cmd код выполняется ожидаемым образом.

Уточнение2. Апдейт IDE на последнюю версию решил проблему. Возможно, помог бы и простой перезапуск. К сожалению, не проверил. Сразу обновил.


Ответы (0 шт):