Come da documentazione il metodo getSelectRow ritorna -1 quando non è selezionata nessuna riga.
Quindi ovviamente se lo richiami senza aver selezionato una riga si verifica l'eccezione da te postata.
Risoluzione, aggiungi un controllo per sapere se effettivamente esiste una riga selezionata.