codice:
if(ric.equals("") || ric==null || ric.equals("chiudi"))
Questa riga di codice è logicamente errata.
Cosa succede se "ric" è nullo? Il primo test fa scatenare una eccezione e il programma termina con errore.

Le condizioni vanno messe nell'ordine corretto (e magari è bene anche usare le parentesi):

codice:
if((ric == null) || ric.equals("") || ric.equals("chiudi"))
Altra buona regola da seguire è quella di invertire variabile e costante nei test. L'istruzione sarebbe stata formalmente corretta se fosse stata scritta in questo modo:

codice:
if("".equals(ric) || (ric == null) || "chiudi".equals(ric))
Non avrebbe mai potuto sollevare eccezioni.


Ciao.