¿Por qué este código obtiene una excepción Java NoSuchElement?

He rastreado este código y no puedo encontrar la manera de solucionarlo. Al ejecutar el código, ¿por qué no se le solicitará al usuario una entrada en lugar de que Java determine que no hay entrada? Error de seguimiento a continuación.

import java.util.*;
public class SortAsInserted {

    public static void main(String[] args) {
        int array_size = GetArraySize();
        //System.out.println(array_size);
        String[] myArray = new String[array_size];
        for (int i = 0; i < array_size; i++){
            String next_string = GetNextString();
            System.out.println(next_string);
        }
    }



    //public static String[] SortInsert(String nextString){
        //}

    public static int GetArraySize(){
        Scanner input = new Scanner(System.in);
        System.out.print("How many items are you entering?: ");
        int items_in_array = input.nextInt();
        input.close();
        return items_in_array;


    }

    public static void PrintArray(String[] x) {
        for (int i = 0; i < x.length; i++){
            System.out.print(x[i]);
        }

    }

    public static String GetNextString(){
        Scanner input = new Scanner(System.in);
        System.out.println("Enter the next string: ");
        String next_string = input.nextLine();
        input.close();
        return next_string;

        }

Aquí está el error:

How many items are you entering?: 2
Enter the next string: 
Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Unknown Source)
    at SortAsInserted.GetNextString(SortAsInserted.java:40)
    at SortAsInserted.main(SortAsInserted.java:10)

Respuestas a la pregunta(3)

Su respuesta a la pregunta