Sì, probabilmente è quello (te l'avevo segnalato in un post precedente! )...
Per ogni "i" che cicla da 0 a length - 1 (escluso), "x" deve ciclare da 1 a length - 1 (incluso). Così com'è ora l'ultima riga non viene mai considerata. Dovrebbe essere sufficiente correggere il for sulla "x" con

codice:
for(int x=i+1;x<matrice2.length;x++)