老服务高并发时ConcurrentModificationException,给别人擦屁股,首先要知道这个问题是由于使用了非线程安全的linkedHashMap,在LinkedHashIterator迭代的时候修改了map内容物数量引起的。那么我们需要知道哪个map报错或者哪里对其进行了写入
#arthas
options unsafe true
watch java.util.LinkedHashMap$LinkedHashIterator nextNode {target,returnObj} -e -x 10 |tee throw.log
如果需要知道在哪对map进行了写入可以重写put方法记录一下栈堆{仅在测试环境使用}