From 55d238e94b99159404bf82740e242f6a9e813276 Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 5 Dec 2014 22:23:50 +0800 Subject: [PATCH] bug fixed for removeAbondaned --- .../com/alibaba/druid/pool/DruidDataSource.java | 15 ++++++++------- .../java/com/alibaba/druid/util/OracleUtils.java | 3 +-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 700f2dd92c..452a56b959 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -1035,12 +1035,7 @@ public class DruidDataSource extends DruidAbstractDataSource public void discardConnection(Connection realConnection) { JdbcUtils.close(realConnection); - try { - lock.lockInterruptibly(); - } catch (InterruptedException e) { - LOG.error("interrupt"); - return; - } + lock.lock(); try { activeCount--; discardCount++; @@ -1263,7 +1258,7 @@ public class DruidDataSource extends DruidAbstractDataSource destroyCount.incrementAndGet(); - lock.lockInterruptibly(); + lock.lock(); try { activeCount--; closeCount++; @@ -1996,6 +1991,12 @@ public class DruidDataSource extends DruidAbstractDataSource if (abandonedList.size() > 0) { for (DruidPooledConnection pooledConnection : abandonedList) { + synchronized (pooledConnection) { + if (pooledConnection.isDisable()) { + continue; + } + } + JdbcUtils.close(pooledConnection); pooledConnection.abandond(); removeAbandonedCount++; diff --git a/src/main/java/com/alibaba/druid/util/OracleUtils.java b/src/main/java/com/alibaba/druid/util/OracleUtils.java index b38df1b099..5d560bdffd 100644 --- a/src/main/java/com/alibaba/druid/util/OracleUtils.java +++ b/src/main/java/com/alibaba/druid/util/OracleUtils.java @@ -134,10 +134,9 @@ public class OracleUtils { oracleConn.setStatementCacheSize(size); } - @SuppressWarnings("deprecation") public static int pingDatabase(Connection conn) throws SQLException { OracleConnection oracleConn = unwrap(conn); - return oracleConn.pingDatabase(1000); + return oracleConn.pingDatabase(); } public static void openProxySession(Connection conn, int type, java.util.Properties prop) throws SQLException {