From 0daea5451407fd1b738ac13f7e846fef0e6905bc Mon Sep 17 00:00:00 2001 From: wenshao Date: Sat, 25 Aug 2012 12:18:45 +0800 Subject: [PATCH] add testcase & bug fixed --- .../java/com/alibaba/druid/pool/DruidDataSource.java | 10 ++++++++++ .../com/alibaba/druid/bvt/pool/TestGraceShutdown.java | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index e19f96f786..4299507fa5 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -955,6 +955,11 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat notEmptyWaitThreadCount--; } notEmptyWaitCount++; + + if (!enable) { + connectErrorCount.incrementAndGet(); + throw new DataSourceDisableException(); + } } } catch (InterruptedException ie) { notEmpty.signal(); // propagate to non-interrupted thread @@ -993,6 +998,11 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat // creator notEmptyWaitCount++; notEmptyWaitNanos += (startEstimate - estimate); + + if (!enable) { + connectErrorCount.incrementAndGet(); + throw new DataSourceDisableException(); + } } catch (InterruptedException ie) { notEmpty.signal(); // propagate to non-interrupted thread notEmptySignalCount++; diff --git a/src/test/java/com/alibaba/druid/bvt/pool/TestGraceShutdown.java b/src/test/java/com/alibaba/druid/bvt/pool/TestGraceShutdown.java index 1b9070b45e..6e30b08e9a 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/TestGraceShutdown.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/TestGraceShutdown.java @@ -17,6 +17,7 @@ package com.alibaba.druid.bvt.pool; import java.sql.Connection; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; import junit.framework.Assert; import junit.framework.TestCase; @@ -91,6 +92,6 @@ public class TestGraceShutdown extends TestCase { } }.start(); - endLatch.await(); + Assert.assertTrue(endLatch.await(60, TimeUnit.SECONDS)); } }