Josep Josep - 1 year ago 158
Java Question

java.sql.sqlRecoverableException: Closed statement: next

My code throws

java.sql.sqlRecoverableException: Sentencia cerrada: next

which, in English, I guess it would be:

java.sql.sqlRecoverableException: Closed statement: next

This is my code:

public TransactionArray() throws SQLException {

/* Obtenemos la tabla de transacciones. */
Connection connection;
connection = ConnectionManager.getConnection(STATISTIC_DATA_BASE);
Statement stmt = null;
String query =
"select * " +
"from " + "dCellStatistic" + ".F_Transaction";
ResultSet rs = null;
try {
stmt = connection.createStatement();
rs = stmt.executeQuery(query);
} catch (SQLException e ) {
} finally {
if (stmt != null) { stmt.close(); }

/* Construimos las transacciones a partir de los registros. */
List<Transaction> transactionList = new ArrayList<Transaction>();
while ( { //THE PROBLEM ARISES IN THIS LINE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
transactionList.add(new Transaction(rs));
array = transactionList.toArray(new Transaction[transactionList.size()]);


Any clues of what I may be doing wrong? I have seen two threads on Code Ranch about similar issues, but none of them seemed to provide a solution for my case.

Answer Source

You are closing the statement prior to retrieving the information from the result set. Move the stmt.close() call after the loop (but keep the try/finally).