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里面,于是升级架包,测试了下,解决。