* @see ConnectionPool
*
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
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"))
}
else
{
- return method.invoke(st, args);
+ try
+ {
+ return method.invoke(st, args);
+ }
+ catch (InvocationTargetException e)
+ {
+ throw e.getTargetException();
+ }
}
}
}
* interface to the PooledConnection is through the CPDS.
*
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
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