O problema é o seguinte:
na linha onde int [] previousLineArray = new int [(currentLineNumber+1)];
- Você cria uma matriz local que sombreia seu membro e apenas visível dentro de if
declaração. Então, quando você chega a esta linha: nextLineArray[(nextLineCount)] = (previousLineArray[(nextLineCount-1)
Ele usa sua matriz de membros que não foi init.