diff --git a/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java b/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java index 3bbda732ea..62752d3095 100644 --- a/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java +++ b/src/main/java/com/alibaba/druid/pool/vendor/MySqlValidConnectionChecker.java @@ -10,6 +10,7 @@ import java.sql.Statement; import com.alibaba.druid.logging.Log; import com.alibaba.druid.logging.LogFactory; import com.alibaba.druid.pool.ValidConnectionChecker; +import com.alibaba.druid.util.DruidLoaderUtils; import com.alibaba.druid.util.JdbcUtils; public class MySqlValidConnectionChecker implements ValidConnectionChecker, Serializable { @@ -21,13 +22,10 @@ public class MySqlValidConnectionChecker implements ValidConnectionChecker, Seri private Method ping; private boolean driverHasPingMethod = false; - // The timeout (apparently the timeout is ignored?) - private static Object[] params = new Object[] {}; - public MySqlValidConnectionChecker(){ try { - clazz = Thread.currentThread().getContextClassLoader().loadClass("com.mysql.jdbc.Connection"); - ping = clazz.getMethod("ping", new Class[] {}); + clazz = DruidLoaderUtils.loadClass("com.mysql.jdbc.Connection"); + ping = clazz.getMethod("ping"); if (ping != null) { driverHasPingMethod = true; } @@ -39,18 +37,18 @@ public class MySqlValidConnectionChecker implements ValidConnectionChecker, Seri public boolean isValidConnection(Connection c) { try { Connection conn = (Connection) c.unwrap(clazz); - if (conn != null) { - c = conn; - } - } catch (SQLException e) { - LOG.warn("Unexpected error in ping", e); - return false; - } - + if (conn != null) { + c = conn; + } + } catch (SQLException e) { + LOG.warn("Unexpected error in ping", e); + return false; + } + // if there is a ping method then use it, otherwise just use a 'SELECT 1' statement if (driverHasPingMethod) { try { - ping.invoke(c, params); + ping.invoke(c); return true; } catch (Exception e) { LOG.warn("Unexpected error in ping", e);