Dovresti segnalare che tipo di messaggio di errore ricevi (che riporta anche la riga dove è avvenuto).
Comunque a occhio direi che l'errore avviene qui:

codice:
for(int x=0; x<A.length; x++){
  if(A.length>max)
  max=A.length;
}
Penso di capirlo da solo, ma vorrei sentirlo da te: cosa dovrebbe fare questo snippet di codice (e non fa)?