From 0ae0e71972e034e3222594e731f31ec1493c24d4 Mon Sep 17 00:00:00 2001 From: wenshao Date: Thu, 14 Jul 2011 07:55:03 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E5=88=9B=E5=BB=BA=E5=A4=B1=E8=B4=A5=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=95=B0=E6=8D=AE=E6=BA=90=E7=BB=A7=E7=BB=AD=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://code.alibabatech.com/svn/druid/trunk@436 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../alibaba/druid/pool/DruidDataSource.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index b1611fc348..7964740d8f 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -199,13 +199,17 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } connections = new ConnectionHolder[capacity]; - // pool = new ConnectionPool(this, this.minIdle, this.maxIdle, - // this.maxActive, this.maxIdleTimeMillis); - for (int i = 0, size = getInitialSize(); i < size; ++i) { - Connection conn = connectionFactory.createConnection(); - conn.setAutoCommit(true); - connections[count++] = new ConnectionHolder(this, conn); + SQLException connectError = null; + + try { + for (int i = 0, size = getInitialSize(); i < size; ++i) { + Connection conn = connectionFactory.createConnection(); + conn.setAutoCommit(true); + connections[count++] = new ConnectionHolder(this, conn); + } + } catch (SQLException ex) { + connectError = ex; } createConnectionThread = new CreateConnectionThread("Druid-ConnectionPool-Create"); @@ -225,6 +229,10 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat createdTime = new Date(); instances.put(this, PRESENT); + + if (connectError != null) { + throw connectError; + } } catch (InterruptedException e) { throw new SQLException(e.getMessage(), e); } finally { @@ -434,7 +442,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat if (createConnectionThread != null) { createConnectionThread.interrupt(); } - + if (destoryConnectionThread != null) { destoryConnectionThread.interrupt(); }