Obtenir java.sql.SQLException: opération non autorisée après la fermeture de ResultSet

Lorsque j'exécute le code suivant, j'obtiens une exception. Je pense que c'est parce que je suis en train de préparer dans la nouvelle déclaration avec lui même objet de connexion. Comment dois-je réécrire ce que je puisse créer une déclaration préparée à l'avance ET de commencer à utiliser un rs2? Dois-je créer une nouvelle connexion de l'objet, même si la connexion est la même DB?

    try 
    {
        //Get some stuff
        String name = "";
        String sql = "SELECT `name` FROM `user` WHERE `id` = " + userId + " LIMIT 1;";
        ResultSet rs = statement.executeQuery(sql);
        if(rs.next())
        {
            name = rs.getString("name");
        }

        String sql2 = "SELECT `id` FROM  `profiles` WHERE `id` =" + profId + ";";
        ResultSet rs2 = statement.executeQuery(sql2);
        String updateSql = "INSERT INTO `blah`............"; 
        PreparedStatement pst = (PreparedStatement)connection.prepareStatement(updateSql);    

        while(rs2.next()) 
        { 
            int id = rs2.getInt("id");
            int stuff = getStuff(id);

            pst.setInt(1, stuff);
            pst.addBatch();

        }

        pst.executeBatch();

    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }

private int getStuff(int id)
{

    try
    {   

            String sql = "SELECT ......;";
            ResultSet rs = statement.executeQuery(sql);

            if(rs.next())
            {
                return rs.getInt("something");

            }
            return -1;
    }//code continues

source d'informationauteur samxli