Bisogna prestare sempre molta attenzione a mixare nextLine() con gli altri next()/nextXyz() ! Perché ad esempio con nextInt() se digiti 1 e poi <invio> il invio non viene scartato ma rimane nel suo buffer interno di Scanner. Ad un prossimo nextLine() ... prende subito una riga vuota "".
Non è un baco o che ... è così by design.