線上Mysql的CancelTask引起的內存泄漏

CancalTask是 mysql 的一個定時任務,繼承自TimerTask,主要用於查詢超時處理。系統在執行一個 sql 查詢時,jdbc會給你一個超時時間。爲了保證超時時間後,能夠關閉 statement。

 今天在做數據遷移時發現log裏有這個異常,於是看了下源碼

感覺開源架包不會有這麼低級的空指針問題吧,懷疑是jar包版本的問題,於是看了下現在的mysql版本。

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.21</version>
</dependency>

再看了下5.1的最高版本5.1.47的源代碼:

代碼裏看到新版本把可能引起空指針的那個代碼行移到了try裏面,於是升級架包,測試了下,解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章