[ https://issues.apache.org/jira/browse/CAY-2713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17411860#comment-17411860 ]
Peter Hvass commented on CAY-2713: ---------------------------------- Thanks very much Nikita! The snapshot has been working great for some months now. :) > ConcurrentModificationException when Inserting > ---------------------------------------------- > > Key: CAY-2713 > URL: https://issues.apache.org/jira/browse/CAY-2713 > Project: Cayenne > Issue Type: Bug > Affects Versions: 4.2.M3 > Reporter: Peter Hvass > Assignee: Nikita Timofeev > Priority: Blocker > Fix For: 4.2.B1 > > > We're seeing an odd CoModException when recording visit information on our > web app - we assemble information related to the visit (i.e.: page visited, > date of visit) and then commit. Vast majority of cases this works except a > rare few where we see the following stack trace. > Always thankful for this project and its maintenance - if there is anything I > can do to help debug or provide further info please just let me know. > Stack Trace: > java.util.ConcurrentModificationException > at java.util.HashMap.forEach(HashMap.java:1292) > at org.apache.cayenne.access.flush.operation.Values.merge(Values.java:90) > at > org.apache.cayenne.access.flush.operation.DbRowOpMerger.mergeValues(DbRowOpMerger.java:75) > at > org.apache.cayenne.access.flush.operation.DbRowOpMerger.visitInsert(DbRowOpMerger.java:49) > at > org.apache.cayenne.access.flush.operation.DbRowOpMerger.visitInsert(DbRowOpMerger.java:29) > at > org.apache.cayenne.access.flush.operation.InsertDbRowOp.accept(InsertDbRowOp.java:40) > at > org.apache.cayenne.access.flush.operation.DbRowOpMerger.apply(DbRowOpMerger.java:41) > at > org.apache.cayenne.access.flush.operation.DbRowOpMerger.apply(DbRowOpMerger.java:29) > at java.util.HashMap.merge(HashMap.java:1254) > at > org.apache.cayenne.access.flush.DefaultDataDomainFlushAction.lambda$mergeSameObjectIds$2(DefaultDataDomainFlushAction.java:133) > at java.util.ArrayList.forEach(ArrayList.java:1257) > at > org.apache.cayenne.access.flush.DefaultDataDomainFlushAction.mergeSameObjectIds(DefaultDataDomainFlushAction.java:133) > at > org.apache.cayenne.access.flush.DefaultDataDomainFlushAction.flush(DefaultDataDomainFlushAction.java:85) > at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:637) > at org.apache.cayenne.access.DataDomain.onSyncNoFilters(DataDomain.java:609) > at > org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:835) > at > org.apache.cayenne.tx.TransactionFilter.lambda$onSync$0(TransactionFilter.java:61) > at > org.apache.cayenne.tx.DefaultTransactionManager$BaseTransactionHandler.performInTransaction(DefaultTransactionManager.java:180) > at > org.apache.cayenne.tx.DefaultTransactionManager$BaseTransactionHandler.performInNewTransaction(DefaultTransactionManager.java:152) > at > org.apache.cayenne.tx.DefaultTransactionManager$NestedTransactionHandler.handle(DefaultTransactionManager.java:95) > at > org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:62) > at > org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:40) > at org.apache.cayenne.tx.TransactionFilter.onSync(TransactionFilter.java:61) > at > org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:834) > at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:596) > at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:737) > [wrapped] org.apache.cayenne.CayenneRuntimeException: [v.4.2.M3 Mar 13 2021 > 14:15:14] Commit Exception > at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:769) > at org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:686) -- This message was sent by Atlassian Jira (v8.3.4#803005)