POI + JDBC = Problemas

Bom estou usando o POI para gerar arquivos excel, retiro os dados do mysql e então crio um loop para a gravação dos registros do banco de dados no arquivo excel, o problema se encontra quando por exemplo tenho que chamar outro método dentro deste loop que também realiza uma consulta ao banco de dados, um loop de gravação no mesmo arquivo(em planilha diferente).

Ele me retorna esse erro:
Operation not allowed after ResultSet closed

O estranho se encontra quando chamo o outro método de gravação, só assim ele me retorna erro.

Segue abaixo o código que estou usando (não colocarei a parte de criação do documento pois esta parte está correta.)

public void escreveDetalhes(HSSFSheet detalhes, HSSFSheet consultorios,
HSSFSheet tecnica, HSSFSheet formacao, HSSFSheet especialidades,
HSSFSheet mestrados, HSSFSheet doutorados) throws SQLException {

	String sql = "select * from cadastro_odontologistas where sta_inf=1 Order by odo_nome ASC";

	ResultSet rs;
	rs = conexao.getStm().executeQuery(sql);

	while (rs.next()) {

		// grava detalhes
		String cro = rs.getString("odo_cro");
		int odo_id = rs.getInt("odo_id");
		String odo_nome = rs.getString("odo_nome");
		String odo_email = rs.getString("odo_email");

		// gravando os detalhes no excel
		int linhaLivre = detalhes.getLastRowNum() + 1;

		HSSFRow linhaDetalhes = detalhes.createRow((short) linhaLivre);

		// CRO
		linhaDetalhes.createCell((short) 0).setCellValue(cro);

		// NOME
		linhaDetalhes.createCell((short) 1).setCellValue(odo_nome);

		// EMAIL
		linhaDetalhes.createCell((short) 2).setCellValue(odo_email);

		// grava outras informacoes
		this.escreveConsultorio(cro, odo_id, consultorios);

}

public void escreveConsultorio(String cro, int odo_id,
HSSFSheet consultorios) throws SQLException {

	String sql = "select * from cadastro_odontologistas_consultorio where odo_id="
			+ odo_id;

	ResultSet rsConsultorio = null;

	rsConsultorio = conexao.getStm().executeQuery(sql);

	while (rsConsultorio.next()) {

		String endereco = rsConsultorio.getString("con_endereco");
		String cep = rsConsultorio.getString("con_cep");
		String cidade = rsConsultorio.getString("con_cidade");
		String estado = rsConsultorio.getString("con_estado");
		String fone = rsConsultorio.getString("con_fone");
		String fax = rsConsultorio.getString("con_fax");
		int tipo = rsConsultorio.getInt("con_tipo");
		String nomeTipo = null;

		if (tipo == 1) {
			nomeTipo = "PRINCIPAL";
		} else if (tipo == 2) {
			nomeTipo = "CONSULTORIO 2";
		} else {
			nomeTipo = "ERRO NO SISTEMA - ENTRE EM CONTATO COM A ÁREA TÉCNICA";
		}
		int linhaLivre = consultorios.getLastRowNum() + 1;

		HSSFRow linhaConsultorios = consultorios
				.createRow((short) linhaLivre);
		// LINHA n - COLUNA 1
		linhaConsultorios.createCell((short) 0).setCellValue(cro);
		// LINHA n - COLUNA 2
		linhaConsultorios.createCell((short) 1).setCellValue(endereco);
		// LINHA n - COLUNA 3
		linhaConsultorios.createCell((short) 2).setCellValue(cep);
		// LINHA n - COLUNA 4
		linhaConsultorios.createCell((short) 3).setCellValue(cidade);
		// LINHA n - COLUNA 5
		linhaConsultorios.createCell((short) 4).setCellValue(estado);
		// LINHA n - COLUNA 6
		linhaConsultorios.createCell((short) 5).setCellValue(fone);
		// LINHA n - COLUNA 7
		linhaConsultorios.createCell((short) 6).setCellValue(fax);
		// LINHA n - COLUNA 8
		linhaConsultorios.createCell((short) 7).setCellValue(nomeTipo);
	}
	rsConsultorio.close();
}