Hi Peter, I've never seen this particular error. Wonder if there's some race condition involved. There were some recent refactorings done to AshwoodEntitySorter. Wonder if those somehow messed it up. Would you be able to rebuild Cayenne 4.0 using a revision older than Nov 16 80de06e8f0424daf7145ddbd95c3dd7a0cfeca2d (e.g. this one: e0caeacb1db20ead138ff7bad08cc48b40417ee6) and see if it keep happening?
Thanks, Andrus > On Feb 1, 2016, at 11:56 AM, fael <peter.hv...@jamesinnes.com> wrote: > > I'm using Cayenne for my Tapestry web apps - all run on the same version of > Jetty both locally when debugging and live. On occasion - when I deploy a > war file to the live server - a 'random' database insert will cause exactly > the following exception to occur. I could then change any irrelevant thing > (add white-space to a mark-up file for example) and re-deploy the war and > this exception will just go away. > > It also seems to have the potential to occur only on a single random commit > (always on insertions). But only on one per deployment. Other inserts will > work fine - even the exact same code will work fine on a different web-app > deployed in exactly the same way to an identical live server. > > I was wondering if anyone else may have experienced this? I haven't been > able to figure out the root of it over the past month or so experiencing it > using the latest snapshot of Cayenne. Sometimes it happens, sometimes it > doesn't and only when packaged in a WAR and deployed to my live Jetty > server. > > If there's any other info I could provide that would lead to any conclusions > please do let me know! > > Caused by: 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 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 > com.jamesinnes.web.services.MyAshwoodEntitySorter.sortDbEntities(MyAshwoodEntitySorter.java:19) > 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:53) > 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:744) > ... 121 more > > Thanks! > Peter > > > > -- > View this message in context: > http://cayenne.195.n3.nabble.com/Erratic-AshwoodEntitySorter-NPE-on-Latest-Snapshot-tp4027453.html > Sent from the Cayenne - User mailing list archive at Nabble.com.