提交 9db065ba 编写于 作者: B Barry Lind

Patch from Aaron Mulder to have pooled connections implement PGConnection

 Modified Files:
 	jdbc/org/postgresql/jdbc2/optional/PooledConnectionImpl.java
 	jdbc/org/postgresql/test/jdbc2/optional/BaseDataSourceTest.java
上级 88e52406
......@@ -4,6 +4,7 @@ import javax.sql.*;
import java.sql.*;
import java.util.*;
import java.lang.reflect.*;
import org.postgresql.PGConnection;
/**
* PostgreSQL implementation of the PooledConnection interface. This shouldn't
......@@ -12,7 +13,7 @@ import java.lang.reflect.*;
* @see ConnectionPool
*
* @author Aaron Mulder (ammulder@chariotsolutions.com)
* @version $Revision: 1.5 $
* @version $Revision: 1.6 $
*/
public class PooledConnectionImpl implements PooledConnection
{
......@@ -114,7 +115,7 @@ public class PooledConnectionImpl implements PooledConnection
con.setAutoCommit(autoCommit);
ConnectionHandler handler = new ConnectionHandler(con);
last = handler;
Connection con = (Connection)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{Connection.class}, handler);
Connection con = (Connection)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[]{Connection.class, PGConnection.class}, handler);
last.setProxy(con);
return con;
}
......@@ -213,7 +214,7 @@ public class PooledConnectionImpl implements PooledConnection
throw e.getTargetException();
}
}
// All the rest is from the Connection interface
// All the rest is from the Connection or PGConnection interface
if (method.getName().equals("isClosed"))
{
return con == null ? Boolean.TRUE : Boolean.FALSE;
......
......@@ -3,6 +3,7 @@ package org.postgresql.test.jdbc2.optional;
import junit.framework.TestCase;
import org.postgresql.test.TestUtil;
import org.postgresql.jdbc2.optional.BaseDataSource;
import org.postgresql.PGConnection;
import java.sql.*;
import java.util.*;
......@@ -16,7 +17,7 @@ import javax.naming.*;
* tests.
*
* @author Aaron Mulder (ammulder@chariotsolutions.com)
* @version $Revision: 1.4 $
* @version $Revision: 1.5 $
*/
public abstract class BaseDataSourceTest extends TestCase
{
......@@ -179,6 +180,24 @@ public abstract class BaseDataSourceTest extends TestCase
}
}
/**
* Test to make sure that PGConnection methods can be called on the
* pooled Connection.
*/
public void testPGConnection()
{
try
{
con = getDataSourceConnection();
((PGConnection)con).getEncoding().name();
con.close();
}
catch (Exception e)
{
fail("Unable to call PGConnection method on pooled connection due to "+e.getClass().getName()+" ("+e.getMessage()+")");
}
}
/**
* Uses the mini-JNDI implementation for testing purposes
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册