diff --git a/fine-druid/src/com/fr/third/alibaba/druid/pool/DruidDataSource.java b/fine-druid/src/com/fr/third/alibaba/druid/pool/DruidDataSource.java index 567ccd5c8..1a7727687 100644 --- a/fine-druid/src/com/fr/third/alibaba/druid/pool/DruidDataSource.java +++ b/fine-druid/src/com/fr/third/alibaba/druid/pool/DruidDataSource.java @@ -613,6 +613,12 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } private void checkThread() throws SQLException { + if (createConnectionThread == null){ + throw new IllegalStateException("createConnectionThread not start!"); + } + if (destroyConnectionThread == null){ + throw new IllegalStateException("destroyConnectionThread not start!"); + } if (!createConnectionThread.isStarted() && !destroyConnectionThread.isStarted()) { synchronized (this) {//线程安全问题,加个双检锁 if (!createConnectionThread.isStarted() && !destroyConnectionThread.isStarted()) { @@ -2152,8 +2158,8 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat try { Thread.sleep(timeBetweenConnectErrorMillis); - } catch (InterruptedException interruptEx) { - break; + } catch (InterruptedException ignore) { + } DruidDataSource.this.createThreadChange(); break;