From 224758514c672ae3366e16ace6013e7c738fb509 Mon Sep 17 00:00:00 2001 From: wenshao Date: Fri, 2 Sep 2011 16:15:08 +0000 Subject: [PATCH] git-svn-id: http://code.alibabatech.com/svn/druid/trunk@585 b9813039-fb51-4c41-a8b9-e21c2acb5095 --- .../java/com/alibaba/druid/pool/DruidDataSource.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 8cf8b85b6b..5159b17d91 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -504,9 +504,14 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat notMaxActive.await(); // signal by recycle } - if (poolingCount == 0) { - lowWater.signal(); // send signal to CreateThread create connection - notEmpty.await(); // signal by recycle or creator + try { + while (poolingCount == 0) { + lowWater.signal(); // send signal to CreateThread create connection + notEmpty.await(); // signal by recycle or creator + } + } catch (InterruptedException ie) { + notEmpty.signal(); // propagate to non-interrupted thread + throw ie; } poolingCount--;