text: public void back(int delta) {if (delta == 1 && 0 <= prevPtr) {currPtr = prevPtr;prevPtr = -1;if (!eof())parseEntry();return;} else if (delta <= 0)throw new ArrayIndexOutOfBoundsException(delta);final int[] trace = new int[delta + 1];Arrays.fill(trace, -1);int ptr = 0;while (ptr != currPtr) {System.arraycopy(trace, 1, trace, 0, delta);trace[delta] = ptr;while (raw[ptr] != 0)ptr++;ptr += OBJECT_ID_LENGTH + 1;}if (trace[1] == -1)throw new ArrayIndexOutOfBoundsException(delta);prevPtr = trace[0];currPtr = trace[1];parseEntry();}