druid DruidDataSource#shrink中关闭空闲时间超过maxEvictableIdleTimeMillis时有bug

yrefmtwq  于 2021-11-27  发布在  Java
关注(0)|答案(1)|浏览(399)

我们用的版本是1.0.25,但我看最新版里面该问题还是存在;
代码中会遍历连接池中的连接,分别判断是否超时等逻辑,但若是靠前的连接空闲时间小于minEvictableIdleTimeMillis,则会直接break跳出for循环导致后面的连接都不会进行空闲时间的逻辑判断;

syqv5f0l

syqv5f0l1#

这个没有问题,应用获取连接的时候都是从右边开始取的,即从poolingcount - 1开始取的,这段代码遍历是从左边开始的,当遇到了第一个没有超过minEvictableIdleTimeMillis的连接,就说明后边的都一定没有超过minEvictableIdleTimeMillis

这个没有问题,应用获取连接的时候都是从右边开始取的,即从poolingcount - 1开始取的,这段代码遍历是从左边开始的,当遇到了第一个没有超过minEvictableIdleTimeMillis的连接,就说明后边的都一定没有超过minEvictableIdleTimeMillis

相关问题