You're right! This makes no sense :-( so it was good that there is/was a
bug. I refactored my coding!

Andrus Adamchik <aadamc...@gmail.com> schrieb am Fr., 15. Nov. 2024, 20:11:

> With the approach that I suggested, the two copies of the same NEW object
> will be disconnected from each other and live their lives independently. So
> when one of the contexts is committed and then another, you'll end up with
> 2 new rows in the database. That will solve the immediate problem of
> faulting, but is this the desired behavior?
>
> Andrus
>
> > On Nov 15, 2024, at 12:41 AM, Markus Reich <reich.mar...@gmail.com>
> wrote:
> >
> > Thank you for analyzing this case.
> > The idea behind the local context was, that this is a dialog opened by
> the
> > users where it's possible to create/change other objects and I don't want
> > that a commit in the global context affects the local object.
> >
> > Meex
> >
> > Am Do., 14. Nov. 2024 um 20:21 Uhr schrieb Andrus Adamchik <
> > aadamc...@gmail.com>:
> >
> >> Looking at the code, it appears that "localObject(..)" behavior for NEW
> >> objects is incorrect. It creates a HOLLOW object, and as a result an
> >> attempt is made to fetch it from the database on first access,
> resulting in
> >> the exception. So formally, this is a bug (or rather a gap) in
> >> localObject(..) logic. For NEW objects, it should probably do a full
> clone
> >> of all values and set the state to NEW. I will open a bug report.
> >>
> >> And the workaround would be smth like this:
> >>
> >> T o1 = .. // initial new object
> >> T o1Local = context.newObject(T.class);
> >>
> >> // manually copy data from "o1"
> >> o1Local.setX(o1.getX());
> >> o1Local.setY(o1.getY());
> >> ...
> >>
> >> Having said that, what is a motivation for calling localObject(..) on a
> >> new object?
> >>
> >> Andrus
> >>
> >>
> >>> On Nov 14, 2024, at 10:36 AM, Markus Reich <reich.mar...@gmail.com>
> >> wrote:
> >>>
> >>> found another case where no relationship is involved, but also the
> object
> >>> is moved to a new local Context
> >>>
> >>> the error occurs then when trying to the readProperty id
> >>>
> >>> public String getId() {
> >>>
> >>> beforePropertyRead("id");
> >>>
> >>> return this.id;
> >>>
> >>> }
> >>>
> >>>
> >>> id is defined as primary key and mandatory
> >>>
> >>>
> >>> Am Do., 14. Nov. 2024 um 15:13 Uhr schrieb Andrus Adamchik <
> >>> aadamc...@gmail.com>:
> >>>
> >>>> FaultFailureExceptions are usually caused by referential integrity
> >>>> problems in DB. But this one is unusual as it references a TEMP ID
> >> (i.e. an
> >>>> uncommitted object). I don't think I've seen this flavor. Can you
> >> provide
> >>>> some more context around the error. I.e. what code leads to this.
> >>>>
> >>>> Andrus
> >>>>
> >>>>
> >>>>> On Nov 14, 2024, at 9:07 AM, Markus Reich <reich.mar...@gmail.com>
> >>>> wrote:
> >>>>>
> >>>>> Hi,
> >>>>>
> >>>>> in my production environment sometimes I get the following errors:
> >>>>>
> >>>>> FaultFailureException
> >>>>>
> >>>>> [v.4.2.1 Jun 14 2024 07:43:08] Error resolving fault, no matching row
> >>>>> exists in the database for ObjectId:
> >>>>> <ObjectId:Recipes,TEMP:-639058002>
> >>>>>
> >>>>>
> >>>>> they are not specific to a certain object and I did get it
> >>>>> reproducible to debug it :-/
> >>>>>
> >>>>>
> >>>>> Maybe someone has some hints or tipps to get the root of evil?
> >>>>>
> >>>>>
> >>>>> regards
> >>>>>
> >>>>> Meex
> >>>>
> >>>>
> >>>
> >>> --
> >>> *Markus Reich*
> >>> Waldweg 62
> >>> 6393 St. Ulrich am Pillersee
> >>> reich.mar...@gmail.com
> >>
> >>
> >
> > --
> > *Markus Reich*
> > Waldweg 62
> > 6393 St. Ulrich am Pillersee
> > reich.mar...@gmail.com
>
>

Reply via email to