From c6ce167b08193d827b7c29977cfa57a6e5f9c80d Mon Sep 17 00:00:00 2001 From: wenshao Date: Mon, 28 Nov 2011 16:42:51 +0800 Subject: [PATCH] when connection closed, 'autoCommit' restore defaultConfig --- .../java/com/alibaba/druid/pool/ConnectionHolder.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/ConnectionHolder.java b/src/main/java/com/alibaba/druid/pool/ConnectionHolder.java index 6bd7ed9fc4..b788d3e1fe 100644 --- a/src/main/java/com/alibaba/druid/pool/ConnectionHolder.java +++ b/src/main/java/com/alibaba/druid/pool/ConnectionHolder.java @@ -49,6 +49,8 @@ public final class ConnectionHolder { private final int defaultHoldability; private final int defaultTransactionIsolation; + private final boolean defaultAutoCommit; + public ConnectionHolder(DruidAbstractDataSource dataSource, Connection conn) throws SQLException{ this.dataSource = dataSource; this.conn = conn; @@ -58,6 +60,7 @@ public final class ConnectionHolder { this.defaultReadOnly = conn.isReadOnly(); this.defaultHoldability = conn.getHoldability(); this.defaultTransactionIsolation = conn.getTransactionIsolation(); + this.defaultAutoCommit = conn.getAutoCommit(); statementPool = null; } @@ -122,15 +125,19 @@ public final class ConnectionHolder { if (conn.isReadOnly() != defaultReadOnly) { conn.setReadOnly(defaultReadOnly); } - + if (conn.getHoldability() != defaultHoldability) { conn.setHoldability(defaultHoldability); } - + if (conn.getTransactionIsolation() != defaultTransactionIsolation) { conn.setTransactionIsolation(defaultTransactionIsolation); } + if (conn.getAutoCommit() != defaultAutoCommit) { + conn.setAutoCommit(defaultAutoCommit); + } + connectionEventListeners.clear(); statementEventListeners.clear();