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裏面,於是升級架包,測試了下,解決。