情景
在排查错误日志中发现,错误问题出现在同一个线程中,请求接收后,实际运行结果和预期不相符,多出无关数据,导致错误,(在租户隔离环境中,创建了多租户存储器,实际运行发现租户和预期不一致)
问题原因
在使用静态的线程池时,如果线程未清空,下次再次获取到后,依然保留参数。
private static final ThreadLocal<String> LoginTenant = new ThreadLocal<>();
另外,如果线程异常中断,最后未执行清空,也会在下次再次调用时出现问题
解决办法
最外层捕获异常增加最终处理,释放资源