Expiringamp-0.5.8.jar中的ExpiringMap存在以下bug:
当在元素过期时,如果在过期监听事件中重新把元素put入此map,出现3个元素重新put,那么这个map过期会失效,无法再触发过期事件,map中的所有元素都不会过期,元素现也不会减少
修复方法:
升级expiringmap-0.5.8.jar为expiringmap-0.5.9.jar可修复此bug。
测试代码:
在ExpiringMap中put,0~10为key,null为value的10个元素,3秒后过期为打印出“过期X==null”,X是0~10的数字
其中小于4的,将重新put回map,while中将持续输出map的大小
使用ExpiringMap-0.5.8.jar测试结果:
自动过期失效,元素无法过期,始终为10个元素:
使用ExpiringMap-0.5.9.jar测试结果:
预期结果:正确