发现问题:
1.sonarLint发现扫描bug,定位到问题是 【RedissonClient】 获取 RBlockingQueue.poll 获取元素对象,会导致【InterruptedException】异常;
2.捕获异常 后sonarLint 爆出bug
image.png
3.sonarLint 给出对应解决方案 【 Thread.currentThread().interrupt();】:
image.png
定位问题:
1.结论
1. 使用sonarLint 建议 不会影响任何后续代码流程,只是在 【线程上标记阻断】
2.当【RBlockingQueue.poll】阻断时,会设置会设置线程状态(Thread.interrupted())为【true】,但是抛出异常会将状态重制会【false】,所以catch 中必须中线程的状态重新修改为true;
网友评论