[alibaba/druid]DruidAbstractDataSource检查连接有效性相关代码的修改建议

2025-11-17 282 views
3

https://github.com/alibaba/druid/blob/c7ad372942d22c507b033b71d4193328bd9e9998/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java#L1391 这行代码result初始值是否修改为false更合适?

原因如下:

当执行validConnectionChecker#isValidConnection检查连接有效性的方法抛出非SQLExceptionException时,会走到

catch (Exception ex) {
         error = ex;
}

语句块,此时resule依旧是true,继续执行

if (!result) {
   SQLException sqlError = error != null ? //
        new SQLException("validateConnection false", error) //
        : new SQLException("validateConnection false");
    throw sqlError;
}

将无法起到将Exception异常包装成SQLException的目的(我猜测这段代码是这个目的)。

回答

3

阿里的这个开源项目1.8k个问题都没人解答吗?现在遇到那个ora01013的问题一直都没有解决,偶现。

8

阿里的这个开源项目1.8k个问题都没人解答吗?现在遇到那个ora01013的问题一直都没有解决,偶现。

什么问题?我可以帮忙看看

5

阿里的这个开源项目1.8k个问题都没人解答吗?现在遇到那个ora01013的问题一直都没有解决,偶现。

什么问题?我可以帮忙看看

https://github.com/alibaba/druid/issues/2175 和这个人遇到的问题一样。 自动化ci有时候会遇到ORA-01013的错误,但是理论上次来说服务端都不可能有自动取消的动作,都是DDL。 create tablespace create user -- 然后测试业务功能 drop user drop tablespace 一个轮训自动化任务下来,这个流程会执行很多次,500次左右。 有一段时间消失过这个问题,也是偶先的后台会收到ORA-01013的错误。不是必先问题。