indeks poza granicami wyjątku java

Komunikat o błędzie brzmi tak:

    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at FcfsScheduler.sortArrival(FcfsScheduler.java:77)
at FcfsScheduler.computeSchedule(FcfsScheduler.java:30)
at ScheduleDisks.main(ScheduleDisks.java:33)

z moim kodem jako

    public void sortArrival(List<Request> r)
{
    int pointer = 0;
    int sProof = 0;
    while(true)
    {
        if(r.get(pointer).getArrivalTime()<r.get(pointer+1).getArrivalTime())
        {
            Request r1 = r.get(pointer);
            Request r2 = r.get(pointer+1);
            r.set(pointer, r2);
            r.set(pointer+1, r1);
        }
        else
        {
            sProof++;
        }
        ++pointer;
        if(pointer>r.size()-2)
        {
            pointer=0;
            sProof=0;
        }
        if(sProof>=r.size()-2)
        {
            break;
        }
    }
}

błąd jest na

if(r.get(pointer).getArrivalTime()<r.get(pointer+1).getArrivalTime())

ale myślę, że indeks Array jest sprawdzany ok z kodem po zwiększeniu wskaźnika. Czy jest to tablica z wyjątkiem wyjątków lub czegoś innego? Zwykle błąd to ArrayIndexOutOfBoundsException, gdy jest to tablica. Co wydaje się być problemem tutaj?

questionAnswers(3)

yourAnswerToTheQuestion