Hi again Nikita!

saw the fix you made yesterday and it works great for the test I created, so 
thanks for that!

However, turns out that for the more complex case in our actual project, the 
operation still fails.
I've added a new example to the test project that models that case a little 
more closely:

https://github.com/hugithordarson/xx-c42/blob/main/src/main/java/family/MainWithAddedBackReference.java

Any thoughts?

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

Reply via email to