ResultSet está fechado - ERRO

Pessoal;

Estou com o seguinte problema na implementação de uma tela de Login

Segue o código abaixo:

public Usuario login(String login, String senha) {
//verfica se o login existe e se a senha confere
//se sim retorna true
//se nao retorna false

    Connection c = null;
    PreparedStatement ps = null;
    String sql = null;
    ResultSet rs = null;
    Usuario usu = null;
    
    try {
        //sql =   " select u.id, u.login, u.senha, 'adm' as tipo from usuario u, administrador a where u.id = a.id and u.login= ?  and u.senha= ? "
        //      + " union "
        //      + " select u.id, u.login, u.senha, 'ger' as tipo from usuario u, gerente g where u.id = g.id and u.login= ?  and u.senha= ? ";
        sql =   " select u.id, u.login, u.senha, 'ger' as tipo from usuario u, gerente g where u.id = g.id and u.login= ? and u.senha= ? ";

        c = Conexao.getConexao();
        ps = c.prepareStatement(sql);
        ps.setString(1,"ger");
        ps.setString(2,"ger");

        // ps.setString(3,"cosme");
        // ps.setString(4,"123456");
        /*
        ps.setString(1,login);
        ps.setString(2,senha);
        ps.setString(3,login);
        ps.setString(4,senha);
        */
                    
        rs = ps.executeQuery(sql);
        if (rs.next()) {
            if (rs.getString(3).equals("adm")) usu = new Administrador();
            if (rs.getString(3).equals("ger")) usu = new Gerente();
        } else {
        // levantar exceção
        //throw new Exception();
        }
        
    } catch (SQLException ex) {
        System.out.println(ex.getMessage());
    }
  return usu;
}

Acontece um erro de RESULTSET ESTÁ FECHADO

Alguém tem alguma solução para o meu problema.

Obrigado desde já pela ajuda

Vlw

Bruno

Amigo cola ai a exception levantada…que da pra ter mais certeza do problema…OK

Abraço

Opa beleza?

if (rs.next()) { if (rs.getString(3).equals("adm")) usu = new Administrador(); if (rs.getString(3).equals("ger")) usu = new Gerente(

Esta parte aqui, não é para ser colocado em um laço de repetição não?

[quote=mrsmylle]Opa beleza?

if (rs.next()) { if (rs.getString(3).equals("adm")) usu = new Administrador(); if (rs.getString(3).equals("ger")) usu = new Gerente(

Esta parte aqui, não é para ser colocado em um laço de repetição não?[/quote]

Só se existissem dois usuários com o mesmo login.

Coloca a excessão ai, vai ajudar bastante.