// 丢弃连接
public void discardConnection(DruidConnectionHolder holder) {
    if (holder == null) {
        return;
    }
    Connection conn = holder.getConnection();
    if (conn != null) {
        // close 掉真正的连接对象,一般调用该方法传入的 connection 对象都是最原始的驱动连接对象,所以这里并不会触发 recycle
        JdbcUtils.close(conn);
    }
    lock.lock();
    try {
        if (holder.discard) {
            return;
        }
        if (holder.active) {
            // 活跃连接数 -1
            activeCount--;
            holder.active = false;
        }
        // 丢弃连接数 +1
        discardCount++;
        holder.discard = true;
        if (activeCount <= minIdle) {
            // 唤起一次主流程3新增连接
            emptySignal();
        }
    } finally {
        lock.unlock();
    }
}