This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to annotated tag REL9_3_1102 in repository libpostgresql-jdbc-java.
commit 8bd3f87c88bfd8e22f2884dcddf34ddf60804130 Author: Dave Cramer <[email protected]> Date: Fri Dec 20 10:07:15 2013 -0500 fixed bug PreparedStatement.getMetaData failed if result set was closed reported by Emmanuel Guiton #bugfix# --- org/postgresql/jdbc2/AbstractJdbc2Statement.java | 5 +++-- org/postgresql/test/jdbc2/ResultSetMetaDataTest.java | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/org/postgresql/jdbc2/AbstractJdbc2Statement.java b/org/postgresql/jdbc2/AbstractJdbc2Statement.java index 05a91ca..fe5c94a 100644 --- a/org/postgresql/jdbc2/AbstractJdbc2Statement.java +++ b/org/postgresql/jdbc2/AbstractJdbc2Statement.java @@ -2996,8 +2996,9 @@ public abstract class AbstractJdbc2Statement implements BaseStatement checkClosed(); ResultSet rs = getResultSet(); - if (rs == null) { - // OK, we haven't executed it yet, we've got to go to the backend + if (rs == null || rs.isClosed() ) { + // OK, we haven't executed it yet, or it was closed + // we've got to go to the backend // for more info. We send the full query, but just don't // execute it. diff --git a/org/postgresql/test/jdbc2/ResultSetMetaDataTest.java b/org/postgresql/test/jdbc2/ResultSetMetaDataTest.java index dda0843..c3cf03e 100644 --- a/org/postgresql/test/jdbc2/ResultSetMetaDataTest.java +++ b/org/postgresql/test/jdbc2/ResultSetMetaDataTest.java @@ -222,5 +222,24 @@ public class ResultSetMetaDataTest extends TestCase assertEquals(Types.STRUCT, rsmd.getColumnType(1)); assertEquals("rsmd1", rsmd.getColumnTypeName(1)); } + + public void testUnexecutedStatement() throws Exception + { + PreparedStatement pstmt = conn.prepareStatement("SELECT col FROM compositetest"); + // we have not executed the statement but we can still get the metadata + ResultSetMetaData rsmd = pstmt.getMetaData(); + assertEquals(Types.STRUCT, rsmd.getColumnType(1)); + assertEquals("rsmd1", rsmd.getColumnTypeName(1)); + } + public void testClosedResultSet() throws Exception + { + PreparedStatement pstmt = conn.prepareStatement("SELECT col FROM compositetest"); + ResultSet rs = pstmt.executeQuery(); + rs.close(); + // close the statement and make sure we can still get the metadata + ResultSetMetaData rsmd = pstmt.getMetaData(); + assertEquals(Types.STRUCT, rsmd.getColumnType(1)); + assertEquals("rsmd1", rsmd.getColumnTypeName(1)); + } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

