diff --git a/pgjdbc/src/main/java/org/postgresql/jdbc/PgStatement.java b/pgjdbc/src/main/java/org/postgresql/jdbc/PgStatement.java index 40104ce87c..e8061375fc 100644 --- a/pgjdbc/src/main/java/org/postgresql/jdbc/PgStatement.java +++ b/pgjdbc/src/main/java/org/postgresql/jdbc/PgStatement.java @@ -335,9 +335,8 @@ public boolean executeWithFlags(int flags) throws SQLException { private void closeUnclosedResults() throws SQLException { synchronized (this) { ResultWrapper resultWrapper = this.firstUnclosedResult; - ResultWrapper currentResult = this.result; - for (; resultWrapper != currentResult && resultWrapper != null; - resultWrapper = resultWrapper.getNext()) { + + for (; resultWrapper != null; resultWrapper = resultWrapper.getNext()) { PgResultSet rs = (PgResultSet) resultWrapper.getResultSet(); if (rs != null) { rs.closeInternally(); diff --git a/pgjdbc/src/test/java/org/postgresql/test/jdbc2/StatementTest.java b/pgjdbc/src/test/java/org/postgresql/test/jdbc2/StatementTest.java index c62939e301..95484cb3da 100644 --- a/pgjdbc/src/test/java/org/postgresql/test/jdbc2/StatementTest.java +++ b/pgjdbc/src/test/java/org/postgresql/test/jdbc2/StatementTest.java @@ -94,6 +94,13 @@ public void testClose() throws SQLException { } } + @Test + public void testResultSetClosed() throws SQLException { + Statement stmt = con.createStatement(); + ResultSet rs = stmt.executeQuery("select 1"); + stmt.close(); + assertTrue(rs.isClosed()); + } /** * Closing a Statement twice is not an error. */