我有一个 Grails (2.4.3) 应用程序,它使用 PersistenceListener 来监听 GORM 事件。
PersistenceListener 工作正常。在 PreUpdate 事件中,它调用一个服务(注入(inject)),该服务在相关对象上执行 findAll。在这里,我只是收集值来更新第 3 方系统。该服务根本不会更改任何对象值,包括 event.entityObject。
在运行 PreUpdate 并在 Controller 上调用 instance.save 后,它会收到 ConcurrentModificationException。
如果我删除/评论相关对象的 findAll,异常就会消失。
我怀疑这与休眠有关。相关问题都讨论了迭代器和使用它们的删除方法。在这里,我没有删除任何值,只是试图获取相关对象。
最佳答案
您是否在 JDK 8 上,甚至排序也被视为与 JDK 7 不同的修改操作?
这可能不是答案;但我不得不把它写成答案,因为我无权发表评论。如果它不相关,请删除它。
关于自定义事件监听器中的 Grails ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486827/