Se eu não me engano, a partir do momento em que você obtém o segundo resultset, ele automaticamente fecha o primeiro. Tente iterar o primeiro resultSet colocando os dados em uma Collection. Depois itere essa colection para fazer a segunda chamada ao banco.
Isso acontece por que você não pode reaproveitar o Statement pra fazer uma outra query sem fechar a query anterior. Quando você faz uma query com um Statement, o jdbc fecha o ResultSet relacionado com aquele Statement, isso se houver um, para gerar outro ResultSet. Você precisa criar mais de um Statement para manter o ResultSet anterior aberto.