Uma
Statement objeto pode ter apenas um ResultSet ativo , então quando você executa rs2 = stmt.executeQuery(sql) , o primeiro ResultSet (rs ) se fecha. Crie duas
Statement objetos, um para rs e outro para rs2 . Citando o javadoc de
Statement
: