【问题标题】:Where does the ConcurrentModificationException occur?ConcurrentModificationException 发生在哪里?
【发布时间】:2015-04-10 09:10:46
【问题描述】:

我偶尔(随机)在我的应用程序中收到ConcurrentModificationException,并带有以下异常消息:

 java.util.ConcurrentModificationException
            at java.util.AbstractList$SimpleListIterator.next(AbstractList.java:62)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterator.next(AbstractList.java:201)
            at java.util.AbstractList$SubAbstractList$SubAbstractListIterat

我的代码比较大,Lists/Maps 都用在不同的地方。异常消息没有说明异常发生的位置。如何找出异常发生的位置以便解决?

【问题讨论】:

    标签: android list dictionary concurrentmodification


    【解决方案1】:

    从 Iterator 获取每个项目后,将其从 Iterator 中删除。

    iterator.remove();
    

    会避开ConcurrentModificationException

    【讨论】:

    • 我不知道要发布什么代码,因为异常消息没有说明异常发生的位置。由于不同的原因,我无法发布所有代码。
    猜你喜欢
    • 2015-05-13
    • 1970-01-01
    • 2014-05-02
    • 2020-08-02
    • 1970-01-01
    • 2012-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多