日期:2014-05-16 浏览次数:20337 次
这是公司的一个重要项目中的真实案例(目前还未证实其它版本是否存在,不过刚看了最新版5.1 .26版本还是没有修复这个操作方式,不过用的小伙伴们要注意了哦):
什么样的情况呢,当在代码中使用connection.close()方法的时候,神奇般的StackOverflow了!没错,这就是JDBC自己导致的死递归,堆栈输出的内容如下所示:
这个堆栈信息可以:
ConnectionImpl.realClose()
-> ConnectionImpl.closeAllOpenStatements()
->StatementImpl.realClose()
->ResultSetImpl.close()
->ResultSetImpl.realClose()
->RowDataDynamic.close()
->StatementImpl.executeSimpleNonQuery()
->ConnectionImpl.execSQL()
->ConnectionImpl.cleanup()