From 3d167a359d5043e5ade2ac2388b19d0aca1f7af4 Mon Sep 17 00:00:00 2001 From: wenshao Date: Wed, 29 Jun 2011 09:20:40 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@311 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../vendor/MySqlValidConnectionChecker.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) 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);