Merge pull request #1777 from wubiliang/snow

修正DruidDataSource#recycle 因Thread被interrupted时无法close的问题
This commit is contained in:
高铁
2017-06-13 22:43:07 +08:00
committed by GitHub
@@ -1484,7 +1484,15 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
boolean result;
final long lastActiveTimeMillis = System.currentTimeMillis();
lock.lockInterruptibly();
lock.lock();
// ====== begin =======
// lockInterruptibly的实现有如下问题:
// 会导致当前线程被Interrupt时,holder无法正常被回收
// 因此改成 lock.lock();
// comment by wubiliang(未立)
// 原来的代码是
// lock.lockInterruptibly();
// ====== end =======
try {
activeCount--;
closeCount++;