/** * Tests fix for BUG#62452 - NPE thrown in JDBC4MySQLPooledException when statement is closed. * * @throws Exception */ public void testBug62452() throws Exception { PooledConnection con = null; MysqlConnectionPoolDataSource pds = new MysqlConnectionPoolDataSource(); pds.setUrl(dbUrl); con = pds.getPooledConnection(); assertTrue(con instanceof JDBC4MysqlPooledConnection); testBug62452WithConnection(con); MysqlXADataSource xads = new MysqlXADataSource(); xads.setUrl(dbUrl); xads.setPinGlobalTxToPhysicalConnection(false); con = xads.getXAConnection(); assertTrue(con instanceof JDBC4MysqlXAConnection); testBug62452WithConnection(con); xads.setPinGlobalTxToPhysicalConnection(true); con = xads.getXAConnection(); assertTrue(con instanceof JDBC4SuspendableXAConnection); testBug62452WithConnection(con); }
public static XAConnection mysqlXAConnection(Connection con) throws SQLException { ConnectionImpl mysqlConn = (ConnectionImpl) con; if (mysqlConn.getPinGlobalTxToPhysicalConnection()) { if (!Util.isJdbc4()) { return new SuspendableXAConnection(mysqlConn); } return new JDBC4SuspendableXAConnection(mysqlConn); } return new MysqlXAConnection(mysqlConn, false); }