This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to tag REL7_4_1 in repository libpostgresql-jdbc-java.
commit 66aac588bf2b63469d97cf1ff49b3a426ed3a9ab Author: Dave Cramer <[email protected]> Date: Fri Dec 12 18:06:25 2003 +0000 fix casting pooled connections to PGStatement problem patch by JariP --- .../jdbc2/optional/PooledConnectionImpl.java | 6 +++--- .../test/jdbc2/optional/ConnectionPoolTest.java | 23 ++++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/org/postgresql/jdbc2/optional/PooledConnectionImpl.java b/org/postgresql/jdbc2/optional/PooledConnectionImpl.java index 4e7ed71..cfcb5a6 100644 --- a/org/postgresql/jdbc2/optional/PooledConnectionImpl.java +++ b/org/postgresql/jdbc2/optional/PooledConnectionImpl.java @@ -266,17 +266,17 @@ public class PooledConnectionImpl implements PooledConnection else if(method.getName().equals("createStatement")) { Statement st = (Statement)method.invoke(con, args); - return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{Statement.class}, new StatementHandler(this, st)); + return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{Statement.class, org.postgresql.PGStatement.class}, new StatementHandler(this, st)); } else if(method.getName().equals("prepareCall")) { Statement st = (Statement)method.invoke(con, args); - return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{CallableStatement.class}, new StatementHandler(this, st)); + return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{CallableStatement.class, org.postgresql.PGStatement.class}, new StatementHandler(this, st)); } else if(method.getName().equals("prepareStatement")) { Statement st = (Statement)method.invoke(con, args); - return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{PreparedStatement.class}, new StatementHandler(this, st)); + return Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{PreparedStatement.class, org.postgresql.PGStatement.class}, new StatementHandler(this, st)); } else { diff --git a/org/postgresql/test/jdbc2/optional/ConnectionPoolTest.java b/org/postgresql/test/jdbc2/optional/ConnectionPoolTest.java index 5cd92db..29ec3f4 100644 --- a/org/postgresql/test/jdbc2/optional/ConnectionPoolTest.java +++ b/org/postgresql/test/jdbc2/optional/ConnectionPoolTest.java @@ -423,6 +423,29 @@ public class ConnectionPoolTest extends BaseDataSourceTest } /** + * Ensure that a statement created from a pool can be used + * like any other statement in regard to pg extensions. + */ + public void testStatementsProxyPGStatement() { + try { + PooledConnection pc = getPooledConnection(); + con = pc.getConnection(); + + Statement s = con.createStatement(); + boolean b = ((org.postgresql.PGStatement)s).isUseServerPrepare(); + + PreparedStatement ps = con.prepareStatement("select 'x'"); + b = ((org.postgresql.PGStatement)ps).isUseServerPrepare(); + + CallableStatement cs = con.prepareCall("select 'x'"); + b = ((org.postgresql.PGStatement)cs).isUseServerPrepare(); + + } catch (SQLException e) { + fail(e.getMessage()); + } + } + + /** * Helper class to remove a listener during event dispatching. */ private class RemoveClose implements ConnectionEventListener -- 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

