如何跟踪哪个HashMap抛出ConcurrentModificationException

时间:2016-06-29 09:04:52

标签: java android concurrency hashmap

在我的应用程序中,我有几个HashMaps。其中一个偶尔会抛出ConcurrentModificationException。问题是我不知道如何跟踪哪个Map实际抛出它,以及何时发生ConcurrentModification。堆栈跟踪不会显示任何行号。堆栈跟踪的开头看起来像这样:

java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:806)
at java.util.HashMap$ValueIterator.next(HashMap.java:838)
at com.parse.ParseTraverser.traverseInternal(ParseTraverser.java:87)
at com.parse.ParseTraverser.traverse(ParseTraverser.java:137)
at com.parse.ParseObject.collectFetchedObjects(ParseObject.java:817)
at com.parse.ParseObject.access$700(ParseObject.java:49)
at com.parse.ParseObject$13.then(ParseObject.java:1487)
at com.parse.ParseObject$13.then(ParseObject.java:1484)
at bolts.Task$15.run(Task.java:917)
at bolts.BoltsExecutors$ImmediateExecutor.execute(BoltsExecutors.java:105)
at bolts.Task.completeAfterTask(Task.java:908)
at bolts.Task.continueWithTask(Task.java:715)

1 个答案:

答案 0 :(得分:0)

如果您无法通过两个操作评估哪个X_py = {} for s, scale in ipairs(scales) do X_py[s] = fromfile(('%s/x_py_%.2f.bin'):format(data_dir, scale)) end 同时被修改(经典示例是循环删除),则可以始终使用@include make-col-offset(2)