From 1bdddef7f32eac991798fd8fcf07753a50d283fb Mon Sep 17 00:00:00 2001 From: zxy Date: Tue, 11 Apr 2017 22:27:39 +0800 Subject: [PATCH] for corona fix --- .../druid/pool/DruidConnectionHolder.java | 62 +++++++++---------- 1 file changed, 30 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidConnectionHolder.java b/src/main/java/com/alibaba/druid/pool/DruidConnectionHolder.java index 10cf4f79a6..b3726418bd 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidConnectionHolder.java +++ b/src/main/java/com/alibaba/druid/pool/DruidConnectionHolder.java @@ -15,17 +15,6 @@ */ package com.alibaba.druid.pool; -import com.alibaba.druid.pool.DruidAbstractDataSource.PhysicalConnectionInfo; -import com.alibaba.druid.proxy.jdbc.WrapperProxy; -import com.alibaba.druid.support.logging.Log; -import com.alibaba.druid.support.logging.LogFactory; -import com.alibaba.druid.util.JdbcConstants; -import com.alibaba.druid.util.JdbcUtils; -import com.alibaba.druid.util.Utils; - -import javax.sql.ConnectionEventListener; -import javax.sql.StatementEventListener; - import java.sql.Connection; import java.sql.SQLException; import java.sql.SQLFeatureNotSupportedException; @@ -36,6 +25,17 @@ import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; +import javax.sql.ConnectionEventListener; +import javax.sql.StatementEventListener; + +import com.alibaba.druid.pool.DruidAbstractDataSource.PhysicalConnectionInfo; +import com.alibaba.druid.proxy.jdbc.WrapperProxy; +import com.alibaba.druid.support.logging.Log; +import com.alibaba.druid.support.logging.LogFactory; +import com.alibaba.druid.util.JdbcConstants; +import com.alibaba.druid.util.JdbcUtils; +import com.alibaba.druid.util.Utils; + /** * @author wenshao [szujobs@hotmail.com] */ @@ -52,9 +52,9 @@ public final class DruidConnectionHolder { protected transient long lastActiveTimeMillis; private long useCount = 0; private long keepAliveCheckCount = 0; - + private long lastNotEmptyWaitNanos; - + private final long createNanoSpan; private PreparedStatementPool statementPool; @@ -75,26 +75,26 @@ public final class DruidConnectionHolder { protected final Map variables; protected final Map globleVariables; - + public static boolean holdabilityUnsupported = false; - - public DruidConnectionHolder(DruidAbstractDataSource dataSource, PhysicalConnectionInfo pyConnectInfo) throws SQLException { - this(dataSource - , pyConnectInfo.getPhysicalConnection() - , pyConnectInfo.getConnectNanoSpan() - , pyConnectInfo.getVairiables() - , pyConnectInfo.getGlobalVairiables()); + + public DruidConnectionHolder(DruidAbstractDataSource dataSource, PhysicalConnectionInfo pyConnectInfo) + throws SQLException{ + this(dataSource, + pyConnectInfo.getPhysicalConnection(), + pyConnectInfo.getConnectNanoSpan(), + pyConnectInfo.getVairiables(), + pyConnectInfo.getGlobalVairiables()); } - public DruidConnectionHolder(DruidAbstractDataSource dataSource, Connection conn, long connectNanoSpan) throws SQLException{ + public DruidConnectionHolder(DruidAbstractDataSource dataSource, Connection conn, long connectNanoSpan) + throws SQLException{ this(dataSource, conn, connectNanoSpan, null, null); } - public DruidConnectionHolder(DruidAbstractDataSource dataSource - , Connection conn - , long connectNanoSpan - , Map variables - , Map globleVariables) throws SQLException{ + public DruidConnectionHolder(DruidAbstractDataSource dataSource, Connection conn, long connectNanoSpan, + Map variables, Map globleVariables) + throws SQLException{ this.dataSource = dataSource; this.conn = conn; this.createNanoSpan = connectNanoSpan; @@ -144,7 +144,7 @@ public final class DruidConnectionHolder { this.underlyingTransactionIsolation = conn.getTransactionIsolation(); } catch (SQLException e) { // compartible for alibaba corba - if (!"com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException".equals(e.getClass().getName())) { + if (!"HY000".equals(e.getSQLState())) { throw e; } } @@ -306,13 +306,11 @@ public final class DruidConnectionHolder { public void setDiscard(boolean discard) { this.discard = discard; } - - + public long getCreateNanoSpan() { return createNanoSpan; } - - + public long getLastNotEmptyWaitNanos() { return lastNotEmptyWaitNanos; }