一个逻辑运算符引发的一场血案

 项目上线时一直发布失败,查找原因是dubbo调用超时,排查了两天发现是下面这块代码造成的:

一个逻辑运算符引发的一场血案

 while中的逻辑运算符为"||"表示其中的判断条件有一个成立就继续循环,如果maps==null继续循环,(System.currentTimeMillis()-start)<10000)成立也继续循环;但是如果maps!=null,而(System.currentTimeMillis()-start)<10000)成立理应结束循环,但是却继续循环,导致dubbo调用超时。