From 7d65e259e0ae0b003041b6eff2f9e139acbb0b67 Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 2 Sep 2011 15:46:54 +0000 Subject: [PATCH] git-svn-id: http://code.alibabatech.com/svn/druid/trunk@577 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- src/main/java/com/alibaba/druid/pool/DruidDataSource.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 8e8c04e9a7..d28f2e7598 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -514,10 +514,9 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat throw ie; } - int lastIndex = poolingCount - 1; - ConnectionHolder last = connections[lastIndex]; - connections[lastIndex] = null; poolingCount--; + ConnectionHolder last = connections[poolingCount]; + connections[poolingCount] = null; // if ((minIdle == 0 && poolingCount == 0) || poolingCount <= minIdle - 1) { // lowWater.signal(); @@ -532,6 +531,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat ConnectionHolder pollLast(long timeout, TimeUnit unit) throws InterruptedException { long estimate = unit.toNanos(timeout); + FOR_0: for (;;) { if (activeCount >= maxActive) { estimate = notMaxActive.awaitNanos(estimate); @@ -545,7 +545,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat if (poolingCount == 0) { if (estimate > 0) { - continue; + continue FOR_0; } return null;