Browse Source

Merge pull request #6185 in CORE/base-third from release/11.0 to bugfix/11.0

* commit '691e97b5f364b92a858233ebfe75fc00b6c7e81e':
  REPORT-74418 informix等老驱动未实现部分Connection接口导致druid创建线程退出
  REPORT-74418 informix等老驱动未实现部分Connection接口导致druid创建线程退出
bugfix/11.0
superman 3 years ago
parent
commit
67325e799a
  1. 17
      fine-druid/readme.MD
  2. 29
      fine-druid/src/main/java/com/fr/third/alibaba/druid/pool/DruidConnectionHolder.java

17
fine-druid/readme.MD

@ -8,11 +8,12 @@
> 由于需要适配数据源的一些特性和默认配置,对Druid有部分修改,后续更新都要保留下列修改 > 由于需要适配数据源的一些特性和默认配置,对Druid有部分修改,后续更新都要保留下列修改
| 版本 | 日期 | FineReport变动 | | 版本 | 日期 | 任务编号 | FineReport变动 |
|-------|------------|-------------------------------------------------------------------------------------| |-------|------------|----|------------------------------------------------------------------------------------|
| 1.2.9 | 2022-04-27 | DruidAbstractDataSource.testConnectionInternal()判断timeBetweenEvictionRunsMillis > 0 | | 1.2.9 | 2022-04-27 | |DruidAbstractDataSource.testConnectionInternal()判断timeBetweenEvictionRunsMillis > 0 |
| 1.2.9 | 2022-04-27 | MysqlUtils.getLastPacketReceivedTimeMs添加驱动判断 | | 1.2.9 | 2022-04-27 | |MysqlUtils.getLastPacketReceivedTimeMs添加驱动判断 |
| 1.2.9 | 2022-05-05 | MysqlUtils.getLastPacketReceivedTimeMs根据类加载器区分连接实现等,不在使用全局变量 | | 1.2.9 | 2022-05-05 | |MysqlUtils.getLastPacketReceivedTimeMs根据类加载器区分连接实现等,不在使用全局变量 |
| 1.2.9 | 2022-05-05 | com.fr.third.alibaba.druid.util.Utils.loadClass改为优先从线程类加载器加载类 | | 1.2.9 | 2022-05-05 | | com.fr.third.alibaba.druid.util.Utils.loadClass改为优先从线程类加载器加载类 |
| 1.2.9 | 2022-05-05 | 恢复com.fr.third.alibaba.druid.pool.DruidDataSourceFactory对hibernate配置属性的支持 | | 1.2.9 | 2022-05-05 | |恢复com.fr.third.alibaba.druid.pool.DruidDataSourceFactory对hibernate配置属性的支持 |
| 1.2.9 | 2022-05-10 | 恢复DruidDataSource中的创建线程启停机制 | | 1.2.9 | 2022-05-10 | |恢复DruidDataSource中的创建线程启停机制 |
| 1.2.9 | 2022-06-27 | REPORT-74418 |DruidConnectionHolder初始化时捕获AbstractMethodError异常防止获取getHoldability错误导致创建线程退出 |

29
fine-druid/src/main/java/com/fr/third/alibaba/druid/pool/DruidConnectionHolder.java

@ -15,6 +15,16 @@
*/ */
package com.fr.third.alibaba.druid.pool; package com.fr.third.alibaba.druid.pool;
import com.fr.third.alibaba.druid.DbType;
import com.fr.third.alibaba.druid.pool.DruidAbstractDataSource.PhysicalConnectionInfo;
import com.fr.third.alibaba.druid.proxy.jdbc.WrapperProxy;
import com.fr.third.alibaba.druid.support.logging.Log;
import com.fr.third.alibaba.druid.support.logging.LogFactory;
import com.fr.third.alibaba.druid.util.JdbcUtils;
import com.fr.third.alibaba.druid.util.Utils;
import javax.sql.ConnectionEventListener;
import javax.sql.StatementEventListener;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException; import java.sql.SQLFeatureNotSupportedException;
@ -26,18 +36,6 @@ import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import javax.sql.ConnectionEventListener;
import javax.sql.StatementEventListener;
import com.fr.third.alibaba.druid.DbType;
import com.fr.third.alibaba.druid.pool.DruidAbstractDataSource.PhysicalConnectionInfo;
import com.fr.third.alibaba.druid.proxy.jdbc.WrapperProxy;
import com.fr.third.alibaba.druid.support.logging.Log;
import com.fr.third.alibaba.druid.support.logging.LogFactory;
import com.fr.third.alibaba.druid.util.JdbcConstants;
import com.fr.third.alibaba.druid.util.JdbcUtils;
import com.fr.third.alibaba.druid.util.Utils;
/** /**
* @author wenshao [szujobs@hotmail.com] * @author wenshao [szujobs@hotmail.com]
*/ */
@ -124,10 +122,7 @@ public final class DruidConnectionHolder {
if (initUnderlyHoldability) { if (initUnderlyHoldability) {
try { try {
this.underlyingHoldability = conn.getHoldability(); this.underlyingHoldability = conn.getHoldability();
} catch (UnsupportedOperationException e) { } catch (UnsupportedOperationException | AbstractMethodError | SQLFeatureNotSupportedException e) {
holdabilityUnsupported = true;
LOG.warn("getHoldability unsupported", e);
} catch (SQLFeatureNotSupportedException e) {
holdabilityUnsupported = true; holdabilityUnsupported = true;
LOG.warn("getHoldability unsupported", e); LOG.warn("getHoldability unsupported", e);
} catch (SQLException e) { } catch (SQLException e) {
@ -136,6 +131,8 @@ public final class DruidConnectionHolder {
holdabilityUnsupported = true; holdabilityUnsupported = true;
} }
LOG.warn("getHoldability error", e); LOG.warn("getHoldability error", e);
} catch (Throwable e) {
LOG.warn("getHoldability error", e);
} }
} }
} }

Loading…
Cancel
Save