Commit e2ad5816 authored by Dave Cramer's avatar Dave Cramer

mike beachy's patch for statement handling

parent 83feff3e
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment