2 回答

TA貢獻(xiàn)1829條經(jīng)驗 獲得超6個贊
您的 JDBC 庫是開源的嗎?然后下載 JDBC 版本的源代碼,更改這一代碼,再次生成 JAR 并使用它。當(dāng)您這樣做時,問題是代碼中的所有“關(guān)閉”調(diào)用不再是合法的關(guān)閉類,而是冗余調(diào)用,在這種情況下,我不知道 JDBC 是否會再拋出一個異常(類似于'連接已經(jīng)關(guān)閉')或沒有,但如果是,你需要抑制異常或其他東西。
但這里的基本思想是您正在修改源代碼,這是有風(fēng)險的。
現(xiàn)在,即使你找到了一個通用的修復(fù),下一個問題是關(guān)于影響的,包括你在內(nèi)的任何人都不能說出這個的影響,其他人應(yīng)該批準(zhǔn)這個改變(假設(shè)這是一個大代碼并且是某個項目)。
因此,與其做這樣的事情并引發(fā)新問題,不如接受這樣一個事實,即過去有人做過一些糟糕的工作,我們現(xiàn)在以正確的方式解決它。
我知道這正是您在這里要避免的,那么我認(rèn)為您應(yīng)該嘗試修改 JDBC 源并試一試。一切順利!

TA貢獻(xiàn)1869條經(jīng)驗 獲得超4個贊
如果您只是想查找泄漏,為什么不改用調(diào)試器呢?您可以在每個相關(guān)方法上設(shè)置斷點并查看調(diào)用它們的位置,然后繼續(xù)檢查以確保它們已正確關(guān)閉。作為一個額外的好處,如果有任何邊緣情況阻止正確關(guān)閉,您將只是單步執(zhí)行相關(guān)代碼,因此您可以更快地找出需要修復(fù)的內(nèi)容。
添加回答
舉報