diff --git a/pom.xml b/pom.xml
index 42227a9377..e009d4ec0d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
com.alibaba
druid
- 1.0.15-SNAPSHOT
+ 1.0.15
jar
druid
diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
index b5267bdf31..89cc36718f 100644
--- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
+++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
@@ -1722,7 +1722,9 @@ public class DruidDataSource extends DruidAbstractDataSource
} catch (SQLException ex) {
lock.lock();
try {
- createTaskCount--;
+ if (createScheduler != null) {
+ createTaskCount--;
+ }
} finally {
lock.unlock();
}
@@ -1769,6 +1771,7 @@ public class DruidDataSource extends DruidAbstractDataSource
for (;;) {
// addLast
lock.lock();
+
try {
// 必须存在线程等待,才创建连接
if (poolingCount >= notEmptyWaitThreadCount) {
@@ -1805,6 +1808,7 @@ public class DruidDataSource extends DruidAbstractDataSource
return;
}
+ this.errorCount = 0; // reset errorCount
createScheduler.schedule(this, timeBetweenConnectErrorMillis, TimeUnit.MILLISECONDS);
return;
}
@@ -2025,7 +2029,11 @@ public class DruidDataSource extends DruidAbstractDataSource
if (isLogAbandoned()) {
StringBuilder buf = new StringBuilder();
- buf.append("abandon connection, open stackTrace\n");
+ buf.append("abandon connection, owner thread: ");
+ buf.append(pooledConnection.getOwnerThread().getName());
+ buf.append(", connected time nano: ");
+ buf.append(pooledConnection.getConnectedTimeNano());
+ buf.append(", open stackTrace\n");
StackTraceElement[] trace = pooledConnection.getConnectStackTrace();
for (int i = 0; i < trace.length; i++) {