Re: Cycles found on save in 4.2.1

Hugi Thordarson <[email protected]> Fri, 9 Aug 2024 08:57:43 +0000
Newsgroups gmane.comp.java.cayenne.user
Message-ID <[email protected]>
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 <[email protected]> wrote:
> 
> Hi Maik,
> 
> Could you provide an example of a failing graph?
> 
> Thanks,
> Andrus
> 
>> On Aug 7, 2024, at 7:31 AM, Maik Musall <[email protected]> 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
>> 
>