This looks very close to the error that you had in February: https://lists.apache.org/list.html?user@cayenne.apache.org:2016-2
I just committed some debug code that should help you to identify the entities involved: https://github.com/apache/cayenne/commit/fb4db81d2808b2baced1d0a1417ce3e8cdc0435e So perhaps we can narrow it down to a specific mapping scenario. Andrus > On Dec 15, 2016, at 2:23 PM, fael <peter.hv...@jamesinnes.com> wrote: > > Hi Andrus, > > Thanks for this! I have tried this now with limited success in some of the > problem cases I was experiencing but now experience a completely new > exception I'm afraid!! > > Stack Trace: > java.lang.NullPointerException > at > org.apache.cayenne.ashwood.AshwoodEntitySorter$DbEntityComparator.compare(AshwoodEntitySorter.java:364) > at > org.apache.cayenne.ashwood.AshwoodEntitySorter$DbEntityComparator.compare(AshwoodEntitySorter.java:351) > at > org.apache.cayenne.lifecycle.sort.WeightedAshwoodEntitySorter$WeightedDbEntityComparator.compare(WeightedAshwoodEntitySorter.java:99) > at > org.apache.cayenne.lifecycle.sort.WeightedAshwoodEntitySorter$WeightedDbEntityComparator.compare(WeightedAshwoodEntitySorter.java:91) > at java.util.TimSort.countRunAndMakeAscending(TimSort.java:355) > at java.util.TimSort.sort(TimSort.java:220) > at java.util.Arrays.sort(Arrays.java:1512) > at java.util.ArrayList.sort(ArrayList.java:1454) > at java.util.Collections.sort(Collections.java:175) > at > org.apache.cayenne.ashwood.AshwoodEntitySorter.sortDbEntities(AshwoodEntitySorter.java:182) > at > org.apache.cayenne.access.DataDomainInsertBucket.appendQueriesInternal(DataDomainInsertBucket.java:56) > at > org.apache.cayenne.access.DataDomainSyncBucket.appendQueries(DataDomainSyncBucket.java:78) > at > org.apache.cayenne.access.DataDomainFlushAction.preprocess(DataDomainFlushAction.java:189) > at > org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:145) > at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:629) > at org.apache.cayenne.access.DataDomain.onSyncNoFilters(DataDomain.java:598) > at > org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:746) > at > org.apache.cayenne.tx.TransactionFilter$1.perform(TransactionFilter.java:73) > at > org.apache.cayenne.tx.TransactionFilter$1.perform(TransactionFilter.java:70) > at > org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:87) > at > org.apache.cayenne.tx.DefaultTransactionManager.performInLocalTransaction(DefaultTransactionManager.java:59) > at > org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:52) > at > org.apache.cayenne.tx.DefaultTransactionManager.performInTransaction(DefaultTransactionManager.java:40) > at org.apache.cayenne.tx.TransactionFilter.onSync(TransactionFilter.java:70) > at > org.apache.cayenne.access.DataDomain$DataDomainSyncFilterChain.onSync(DataDomain.java:746) > at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:585) > at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:742) > > Thanks! > Peter > > > > -- > View this message in context: > http://cayenne.195.n3.nabble.com/Erratic-AshwoodEntitySorter-NPE-on-Latest-Snapshot-tp4027453p4028338.html > Sent from the Cayenne - User mailing list archive at Nabble.com.