【问题标题】:Google App Engine Datastore Concurrent Modification ExceptionGoogle App Engine 数据存储区并发修改异常
【发布时间】:2014-11-17 11:52:58
【问题描述】:
java.util.ConcurrentModificationException
java.util.HashMap$HashIterator.nextEntry(HashMap.java:806)
java.util.HashMap$KeyIterator.next(HashMap.java:841)
java.util.AbstractCollection.addAll(AbstractCollection.java:333)
java.util.HashSet.(HashSet.java:117)
org.datanucleus.ObjectManagerImpl.persistObject(ObjectManagerImpl.java:1599)
org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:731)
org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:756)

尝试持久化对象时抛出上述异常。使用 makePersistent 方法对数组中的每个对象进行迭代,并从数组中逐个持久化对象。

【问题讨论】:

  • 你可能想试试像 Twist 这样的对象映射框架:git.io/OGKDBQ

标签: java google-app-engine google-cloud-datastore


【解决方案1】:

如果同一个实体被多个线程更新,就会发生这种情况。 See this link 获取一些文档,了解为什么会发生这种情况。

还请记住,makePersistent() 在幕后是在低级 API 中执行 put(),但不一定在您调用 makePersistent() 的那一刻。

我希望这可以帮助您了解您的应用发生了什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多