bug fixed for validateConnection

This commit is contained in:
高铁
2016-06-11 21:44:43 +08:00
parent 7d8763bcb9
commit 5544c60801
2 changed files with 25 additions and 13 deletions
@@ -16,8 +16,12 @@
package com.alibaba.druid.pool;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
import com.alibaba.druid.util.JdbcUtils;
/**
* @author wenshao [szujobs@hotmail.com]
* @since 0.2.21
@@ -25,8 +29,24 @@ import java.util.Properties;
public class ValidConnectionCheckerAdapter implements ValidConnectionChecker {
@Override
public boolean isValidConnection(Connection c, String query, int validationQueryTimeout) throws Exception {
return true;
public boolean isValidConnection(Connection conn, String query, int validationQueryTimeout) throws Exception {
if (query == null || query.length() == 0) {
return true;
}
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
if (validationQueryTimeout > 0) {
stmt.setQueryTimeout(validationQueryTimeout);
}
rs = stmt.executeQuery(query);
return true;
} finally {
JdbcUtils.close(rs);
JdbcUtils.close(stmt);
}
}
@Override
@@ -325,16 +325,8 @@ public class DataSourceTest3 extends TestCase {
dataSource.setValidationQuery(null);
dataSource.setValidConnectionChecker(new MySqlValidConnectionChecker());
{
Exception error = null;
try {
DruidPooledConnection conn = dataSource.getConnection().unwrap(DruidPooledConnection.class);
dataSource.validateConnection(conn);
} catch (SQLException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
DruidPooledConnection conn = dataSource.getConnection().unwrap(DruidPooledConnection.class);
dataSource.validateConnection(conn);
}
}