Google App Engine数据存储区并发修改例外

时间:2014-11-17 11:52:59

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

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方法逐个迭代数组,并使用makePersistent方法从数组中逐个持久化对象。

1 个答案:

答案 0 :(得分:1)

如果多个线程正在更新同一个实体,则会发生这种情况。 See this link提供了一些文档,可以深入了解这可能发生的原因。

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

我希望这可以帮助您找到适用于您应用的内容。