这两天在写代码测试的时候遇到一个问题:代码还没跑完,就自动锁释放了,而且没有报错,很诡异。。。
检查日志,没有报错,检查代码,相关代码如下:
查出来shopIds里面有39条数据,但是下面的for循环执行到第18条数据,在执行第19条数据的时候就自动释放锁了,且日志没有报错。
经过对比数据,排查发现
涉及相关代码如上图。查到的list如果为空时,下面的for循环就无法继续执行,锁就会自动释放。下面图是修改后的代码
修改后的代码对list和message都进行了判空,如果是空则默认数据为0,不为空则将获取到的数据赋值给对应的字段。