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

Reply via email to