On Jun 1, 2015, at 15:59 , Tomas Jelinek <[email protected]> wrote:
> > > ----- Original Message ----- >> From: "Liran Zelkha" <[email protected]> >> To: "Tomas Jelinek" <[email protected]> >> Cc: [email protected], [email protected] >> Sent: Monday, June 1, 2015 3:56:03 PM >> Subject: Re: [ovirt-devel] hibernate's internal PersistentBag sent to FE >> >> Guys, >> >> Why is https://gerrit.ovirt.org/#/c/40804/ not enough? > > because the PersistenBag has an inner property "bag" and FE fails on bunch of > NPEs because of it > >> Where do you get these errors? > > open debug mode and load webadmin - you will see loads of NPEs does this happen in normal mode too? > >> >> >> >>> On Jun 1, 2015, at 4:33 PM, Tomas Jelinek <[email protected]> wrote: >>> >>> >>> >>> ----- Original Message ----- >>>> From: "Alexander Wels" <[email protected]> >>>> To: [email protected] >>>> Cc: "Tomas Jelinek" <[email protected]>, "Liran Zelkha" >>>> <[email protected]> >>>> Sent: Monday, June 1, 2015 3:16:34 PM >>>> Subject: Re: [ovirt-devel] hibernate's internal PersistentBag sent to FE >>>> >>>>> On Monday, June 01, 2015 09:08:50 AM Tomas Jelinek wrote: >>>>> Hey all, >>>>> >>>>> since the org.ovirt.engine.core.common.job.Job/Step... has been moved to >>>>> use >>>>> the JPA we have a problem on frontend. The problem is that the @OneToMany >>>>> annotations results in a List which is of type PersistentBag. When we >>>>> send >>>>> this to Frontend it fails during deserialization. It actually fails quite >>>>> bad because the FE already has an ui-override of it which is not correct >>>>> resulting in a ton of NPEs in development mode. >>>>> >>>>> So, there are 2 nasty fixes I have made where none of them should be >>>>> merged >>>>> but demonstrate the possibilities: 1: extend the FE to be able to work >>>>> with >>>>> the PersistentBag (https://gerrit.ovirt.org/#/c/41682/) not really good >>>>> solution since the PersistenBag is an internal Hibernate class which is >>>>> really not meant to be passed around >>>>> >>>>> 2: fix on the backend to not send the PersistentBag but an ArrayList. >>>>> This >>>>> is only a PoC fixed on a command we face the problem >>>>> (https://gerrit.ovirt.org/#/c/41797/) Obviously this is not going to work >>>>> for other commands accessing the same Job nor for other entities. >>>>> >>>>> So, the first option is generic but very very bad. The second option >>>>> should >>>>> be used but not sure how to do this in a cheep way (e.g. without using >>>>> reflection to deep traverse everything sent back to frontend checking if >>>>> it >>>>> does not have a PersistentBag in it. >>>> >>>> Tomas, >>>> >>>> Thanks, I was investigating the same issue, I noticed it last Friday just >>>> before leaving, so I was investigating the problem to see what was going >>>> on. >>>> You are right we should not be sending PersistentBag to the frontend at >>>> all. >>>> So how about we do a combination of [1] and [2], but instead of delegating >>>> in >>>> [1] we actually simple throw an exception stating don't sent PersistentBag >>>> to >>>> the front end. that way anyone inadvertently using it will be notified >>>> immediately (since their code won't work). >>> >>> Throwing the exception would help us in debugging but the main question is >>> how will we make it work? >>> Since we are planning to move more and more to JPA so we will face this >>> issue more and more often. >>> Solving it one by one on backend in each command is not going to work. >>> >>>> >>>> Alexander >>>> >>>>> Any better ideas? >>>>> Thanx, >>>>> Tomas >>>>> _______________________________________________ >>>>> Devel mailing list >>>>> [email protected] >>>>> http://lists.ovirt.org/mailman/listinfo/devel >>>> >>>> >> > _______________________________________________ > Devel mailing list > [email protected] > http://lists.ovirt.org/mailman/listinfo/devel _______________________________________________ Devel mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/devel
