Hi Nikita, glad to hear this and that the example helped out, thanks for the quick reply and for being awesome :).
Cheers, - hugi > On 12 Aug 2024, at 13:52, Nikita Timofeev <ntimof...@objectstyle.com> wrote: > > Hi Hugi, > > Thanks for the perfect example, that's always my main problem. > I've found the issue with the new flush logic [1]. The last operation > creates two logical changes (DbRowOps), and one of them is later discarded > as there's nothing to flush to the DB. > However it's discarded only after the sorting, so it fails. > I'm already testing a fix for that. > > Also wanted to mention that in this exact case GraphBasedDbRowOpSorter > helps, as it checks operation internals and ignores it. > > [1] https://issues.apache.org/jira/browse/CAY-2866 > > On Fri, Aug 9, 2024 at 12:58 PM Hugi Thordarson <h...@godurkodi.is> wrote: > >> Hi Andrus, >> I've been taking a look at this with Maik, here's a runnable example >> project containing a commit that works on v4.1 but fails in v4.2: >> >> https://github.com/hugithordarson/xx-c42/ >> >> Quick link to the code actually demonstrating the failure: >> >> https://github.com/hugithordarson/xx-c42/blob/main/src/main/java/family/Main.java >> >> The last commit certainly results in a circular reference being present in >> the object graph, but it probably shouldn't be a problem for the actual >> operation since we're only updating a single row, right? >> >> Cheers, >> - hugi >> >> >> >> >> >> >>> On 8 Aug 2024, at 18:10, Andrus Adamchik <aadamc...@gmail.com> wrote: >>> >>> Hi Maik, >>> >>> Could you provide an example of a failing graph? >>> >>> Thanks, >>> Andrus >>> >>>> On Aug 7, 2024, at 7:31 AM, Maik Musall <m...@selbstdenker.ag> wrote: >>>> >>>> Hi everyone, >>>> >>>> we upgraded an application from Cayenne 4.1.1 to 4.2.1, and now we’re >> getting more cyclic graph errors from AshwoodEntitySorter. Years back we >> already had a similar problem, but @SortWeight didn’t help and >> GraphBasedDbRowOpSorter wasn’t ready. The latter is now in 4.2 stable but >> fails to save even simpler graphs, so unfortunately not a solution. We had >> been able to get stable operation by fetching PK’s from PostgreSQL >> sequences (Oracle-style) instead of having Cayenne generate them, and lived >> with the performance penalty associated with that, but the problem came >> back with 4.2 despite that. Not reliably reproducible though, happens every >> now and then. Any thoughts? >>>> >>>> Thanks >>>> Maik >>>> >>> >> >> > > -- > Best regards, > Nikita Timofeev