Resultados nulos ao chamar o procedimento armazenado do Sybase por meio do JDBC

Estou chamando um procedimento armazenado do Sybase que retorna vários conjuntos de resultados por meio do JDBC. Eu preciso obter um conjunto de resultados específico que tem uma coluna chamada "Resultado" Este é o meu código:

CallableStatement cs = conn.prepareCall(sqlCall);
cs.registerOutParameter(1, Types.VARCHAR);
cs.execute();
ResultSet rs=null;
int count = 1;
boolean flag = true;
while (count < 20000 && flag == true) {
    cs.getMoreResults();
    rs = cs.getResultSet();
    if (rs != null) {
        ResultSetMetaData resultSetMetaData = rs.getMetaData();
        int columnsCount = resultSetMetaData.getColumnCount();
        if (resultSetMetaData.getColumnName(1).equals("Result")) {
            // action code resultset found 
            flag = false;
            // loop on the resultset and add the elements returned to an array list
            while (rs.next()) {
                int x = 1;
                while (x <= columnsCount) {
                   result.add(rs.getString(x));
                   x++;
                }
            }
            result.add(0, cs.getString(1));
        }
    }
    count++;
}

O que acontece aqui é quecs.getMoreResults devolve muitos conjuntos de resultados nulos até atingir o alvo. Não posso usarcs.getMoreResults como condição de loop porque retorna false para conjuntos de resultados nulos.

Eu coloquei um número fixo para terminar o loop em condição que o conjunto de resultados desejado não foi retornado para impedir que ele entrasse em loop infinito. Funcionou bem, mas não acho que isso esteja certo.

Eu acho que os conjuntos de resultados nulos retornados da atribuição no Sybaseselect @variable = value

Alguém já enfrentou isso antes?

questionAnswers(1)

yourAnswerToTheQuestion