mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
mike beachy's patch for statement handling
This commit is contained in:
parent
83feff3ee7
commit
e2ad5816e2
@ -12,7 +12,7 @@ import java.lang.reflect.*;
|
||||
* @see ConnectionPool
|
||||
*
|
||||
* @author Aaron Mulder (ammulder@chariotsolutions.com)
|
||||
* @version $Revision: 1.4 $
|
||||
* @version $Revision: 1.5 $
|
||||
*/
|
||||
public class PooledConnectionImpl implements PooledConnection
|
||||
{
|
||||
@ -204,7 +204,14 @@ public class PooledConnectionImpl implements PooledConnection
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
return method.invoke(con, args);
|
||||
try
|
||||
{
|
||||
return method.invoke(con, args);
|
||||
}
|
||||
catch (InvocationTargetException e)
|
||||
{
|
||||
throw e.getTargetException();
|
||||
}
|
||||
}
|
||||
// All the rest is from the Connection interface
|
||||
if (method.getName().equals("isClosed"))
|
||||
@ -355,7 +362,14 @@ public class PooledConnectionImpl implements PooledConnection
|
||||
}
|
||||
else
|
||||
{
|
||||
return method.invoke(st, args);
|
||||
try
|
||||
{
|
||||
return method.invoke(st, args);
|
||||
}
|
||||
catch (InvocationTargetException e)
|
||||
{
|
||||
throw e.getTargetException();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ import java.sql.*;
|
||||
* interface to the PooledConnection is through the CPDS.
|
||||
*
|
||||
* @author Aaron Mulder (ammulder@chariotsolutions.com)
|
||||
* @version $Revision: 1.4 $
|
||||
* @version $Revision: 1.5 $
|
||||
*/
|
||||
public class ConnectionPoolTest extends BaseDataSourceTest
|
||||
{
|
||||
@ -359,6 +359,70 @@ public class ConnectionPoolTest extends BaseDataSourceTest
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that the Statement proxy generated by the Connection handle
|
||||
* throws the correct kind of exception.
|
||||
*/
|
||||
public void testStatementProxy() {
|
||||
Statement s = null;
|
||||
try
|
||||
{
|
||||
PooledConnection pc = getPooledConnection();
|
||||
Connection con = pc.getConnection();
|
||||
s = con.createStatement();
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
fail(e.getMessage());
|
||||
}
|
||||
try
|
||||
{
|
||||
s.executeQuery("SELECT * FROM THIS_TABLE_SHOULD_NOT_EXIST");
|
||||
fail("An SQL exception was not thrown that should have been");
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
; // This is the expected and correct path
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
fail("bad exception; was expecting SQLException, not" +
|
||||
e.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that the Statement proxy generated by the Connection handle
|
||||
* throws the correct kind of exception.
|
||||
*/
|
||||
public void testStatementProxy() {
|
||||
Statement s = null;
|
||||
try
|
||||
{
|
||||
PooledConnection pc = getPooledConnection();
|
||||
Connection con = pc.getConnection();
|
||||
s = con.createStatement();
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
fail(e.getMessage());
|
||||
}
|
||||
try
|
||||
{
|
||||
s.executeQuery("SELECT * FROM THIS_TABLE_SHOULD_NOT_EXIST");
|
||||
fail("An SQL exception was not thrown that should have been");
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
; // This is the expected and correct path
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
fail("bad exception; was expecting SQLException, not" +
|
||||
e.getClass().getName());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures that a prepared statement generated by a proxied connection
|
||||
* returns the proxied connection from getConnection() [not the physical
|
||||
|
Loading…
Reference in New Issue
Block a user