Re: DataRowStore.sendUpdateNotification NullPointerException

From: Emilian Bold (emilian.bol..mail.com)
Date: Wed Oct 17 2007 - 02:54:14 EDT

  • Next message: Andrus Adamchik: "Re: Cayenne Modeler Question"

    Hy,

    I just tested my code with the 2.0.4 jar from the link you gave me
    (and the 2.0.4 official release). It still throws that
    NullPointerException if I don't init the EventManager properly.

    So I think CAY-796 doesn't solve this as it's not actually a
    serialization issue, just a null EventManager that's propagated to the
    children. (I assume your patch was some readResolve() of some kind so
    it's not so unexpected for me to still have the NPE).

    Emilian

    On 10/8/07, Andrus Adamchik <andru..bjectstyle.org> wrote:
    > > Before we make any other changes, could you confirm that with a
    > > CAY-796 fix you can use DataDomain without EventManager?
    >
    > BTW, while the Cayenne developers are voting to make an official
    > 2.0.4 release, you can download the unofficial release files from here:
    >
    > http://people.apache.org/~aadamchik/release/2.0.4/
    >
    > Andrus
    >
    >
    > On Oct 8, 2007, at 11:11 AM, Andrus Adamchik wrote:
    > > Hi Emilian,
    > >
    > > I agree with your general point about the obscure nature of this
    > > behavior. However CAY-796 fix was already supposed to address the
    > > underlying deserialization bug (something I did not consider in my
    > > previous reply). Before we make any other changes, could you
    > > confirm that with a CAY-796 fix you can use DataDomain without
    > > EventManager?
    > >
    > > Andrus
    > >
    > >
    > > On Oct 7, 2007, at 1:54 AM, Emilian Bold wrote:
    > >> Well, not quite a cayenne "bug" just a design decision that
    > >> impacts API users.
    > >>
    > >> I don't *need* to listen to events to why am I forced to set a
    > >> manager
    > >> ? Not to mention there's no warning and the 1st error I got sent
    > >> me on
    > >> a serialization wild goose chase.
    > >>
    > >> That was my whole idea: just use some default if no manager provided.
    > >>
    > >> Emilian
    > >>
    > >> On 10/4/07, Andrus Adamchik <andru..bjectstyle.org> wrote:
    > >>> I see. Yes, EventManager needs to be provided to the DataDomain. So
    > >>> this is not a bug in Cayenne, and I am not sure how we can "fix" it.
    > >>> Injection of EventManager is tied to the lifecycle, so using an
    > >>> arbitrary EM doesn't seem to be a good solution. Maybe we'll simply
    > >>> document this behavior via Javadocs....
    > >>>
    > >>> A side note regarding the *default* EventManager, there are plans to
    > >>> deprecate and avoid using it in Cayenne internally, as the singleton
    > >>> makes configuration much less flexible.
    > >>>
    > >>> Andrus
    > >>>
    > >>> On Oct 4, 2007, at 4:09 PM, Emilian Bold wrote:
    > >>>
    > >>>> I finally figured out what my bug was (it wasn't CAY-796 actually).
    > >>>>
    > >>>> See https://issues.apache.org/cayenne/browse/CAY-871
    > >>>>
    > >>>> Emilian
    > >>>>
    > >>>> On 9/17/07, Emilian Bold <emilian.bol..mail.com> wrote:
    > >>>>> Thanks, that's great. I'll wait for the official 2.0.4 as I've
    > >>>>> found a
    > >>>>> workaround in my situation (still trying to figure out the exact
    > >>>>> cause, I think some rich-client is serializing CayenneDataObjects
    > >>>>> directly instead of client classes).
    > >>>>>
    > >>>>> Emilian
    > >>>>>
    > >>>>>
    > >>>>> On 9/15/07, Andrus Adamchik <andru..bjectstyle.org> wrote:
    > >>>>>> Ok, I fixed CAY-796 for 1.2, 2.0, 3.0 branches. To get a fixed
    > >>>>>> version you can either build the code from Subversion [1,2] or
    > >>>>>> wait
    > >>>>>> till 2.0.4 comes out.
    > >>>>>>
    > >>>>>> Cheers,
    > >>>>>> Andrus
    > >>>>>>
    > >>>>>> [1] http://svn.apache.org/repos/asf/cayenne/main/branches/
    > >>>>>> STABLE-2.0/
    > >>>>>> [2] http://cayenne.apache.org/legacy-ant-build.html
    > >>>>>>
    > >>>>>>
    > >>>>>> On Sep 12, 2007, at 7:54 PM, Andrus Adamchik wrote:
    > >>>>>>> Hi there,
    > >>>>>>>
    > >>>>>>> Yeah, looks like CAY-796 [1] to me. I could swear we fixed
    > >>>>>>> it, but
    > >>>>>>> looks like we did not. Ok, adding that to a TODO list...
    > >>>>>>>
    > >>>>>>> In the meantime try to check the "Use Shared Cache" checkbox
    > >>>>>>> in the
    > >>>>>>> Modeler - this would hopefully take care of the problem (and
    > >>>>>>> probably improve your performance if you could live with a
    > >>>>>>> bit of
    > >>>>>>> object caching in your app).
    > >>>>>>>
    > >>>>>>> Andrus
    > >>>>>>>
    > >>>>>>>
    > >>>>>>> [1] https://issues.apache.org/cayenne/browse/CAY-796
    > >>>>>>>
    > >>>>>>>
    > >>>>>>> On Sep 12, 2007, at 6:18 PM, Emilian Bold wrote:
    > >>>>>>>
    > >>>>>>>> Hy,
    > >>>>>>>>
    > >>>>>>>> I keep getting this exception:
    > >>>>>>>>
    > >>>>>>>> java.lang.NullPointerException
    > >>>>>>>> at
    > >>>>>>>> org.apache.cayenne.access.DataRowStore.sendUpdateNotification
    > >>>>>>>> (DataRowStore.java:673)
    > >>>>>>>> at
    > >>>>>>>> org.apache.cayenne.access.DataRowStore.processSnapshotChanges
    > >>>>>>>> (DataRowStore.java:538)
    > >>>>>>>> at
    > >>>>>>>> org.apache.cayenne.access.DataRowStore.snapshotsUpdatedForObjec
    > >>>>>>>> ts
    > >>>>>>>> (DataRowStore.java:278)
    > >>>>>>>> at
    > >>>>>>>> org.apache.cayenne.access.ObjectResolver.objectsFromDataRows
    > >>>>>>>> (ObjectResolver.java:121)
    > >>>>>>>> at
    > >>>>>>>> org.apache.cayenne.access.ObjectResolver.synchronizedObjectsFro
    > >>>>>>>> mDa
    > >>>>>>>> taR
    > >>>>>>>> ows(ObjectResolver.java:97)
    > >>>>>>>> at
    > >>>>>>>> org.apache.cayenne.access.DataDomainQueryAction.interceptObject
    > >>>>>>>> Con
    > >>>>>>>> ver
    > >>>>>>>> sion(DataDomainQueryAction.java:319)
    > >>>>>>>> at org.apache.cayenne.access.DataDomainQueryAction.execute
    > >>>>>>>> (DataDomainQueryAction.java:116)
    > >>>>>>>> at org.apache.cayenne.access.DataDomain.onQuery
    > >>>>>>>> (DataDomain.java:730)
    > >>>>>>>> at
    > >>>>>>>> org.apache.cayenne.util.ObjectContextQueryAction.runQuery
    > >>>>>>>> (ObjectContextQueryAction.java:217)
    > >>>>>>>> at
    > >>>>>>>> org.apache.cayenne.access.DataContextQueryAction.execute
    > >>>>>>>> (DataContextQueryAction.java:54)
    > >>>>>>>> at org.apache.cayenne.access.DataContext.onQuery
    > >>>>>>>> (DataContext.java:
    > >>>>>>>> 1387)
    > >>>>>>>> at org.apache.cayenne.access.DataContext.performQuery
    > >>>>>>>> (DataContext.java:1376)
    > >>>>>>>> ...
    > >>>>>>>>
    > >>>>>>>> on Cayenne 2.0.2.
    > >>>>>>>>
    > >>>>>>>> This seems to happen always for the same Local EJB, while other
    > >>>>>>>> Local
    > >>>>>>>> EJBs that use Cayenne in the same way seem to work. From a
    > >>>>>>>> previous
    > >>>>>>>> email, it seems this has something to do with the
    > >>>>>>>> serialization of
    > >>>>>>>> the
    > >>>>>>>> objectStore.
    > >>>>>>>>
    > >>>>>>>> What can I do to get rid of this ?
    > >>>>>>>>
    > >>>>>>>> Thanks,
    > >>>>>>>> Emilian Bold
    > >>>>>>>>
    > >>>>>>>>
    > >>>>>>>>
    > >>>>>>>>
    > >>>>>>>> --
    > >>>>>>>> Emilian Bold
    > >>>>>>>> +40 740235562
    > >>>>>>>> http://www.emilianbold.ro
    > >>>>>>>>
    > >>>>>>>> Java and NetBeans Platform-loving consulting services from
    > >>>>>>>> Timisoara, Romania.
    > >>>>>>>>
    > >>>>>>>
    > >>>>>>>
    > >>>>>>
    > >>>>>>
    > >>>>>
    > >>>>>
    > >>>>> --
    > >>>>> Emilian Bold
    > >>>>> +40 740235562
    > >>>>> http://www.emilianbold.ro
    > >>>>>
    > >>>>> Java and NetBeans Platform-loving consulting services from
    > >>>>> Timisoara, Romania.
    > >>>>>
    > >>>>
    > >>>>
    > >>>> --
    > >>>> Emilian Bold
    > >>>> +40 740235562
    > >>>> http://www.emilianbold.ro
    > >>>>
    > >>>> Java and NetBeans Platform-loving consulting services from
    > >>>> Timisoara, Romania.
    > >>>>
    > >>>
    > >>>
    > >>
    > >>
    > >> --
    > >> Emilian Bold
    > >> +40 740235562
    > >> http://www.emilianbold.ro
    > >>
    > >> Java and NetBeans Platform-loving consulting services from
    > >> Timisoara, Romania.
    > >>
    > >
    > >
    >
    >

    -- 
    Emilian Bold
    +40 740235562
    http://www.emilianbold.ro
    

    Java and NetBeans Platform-loving consulting services from Timisoara, Romania.



    This archive was generated by hypermail 2.0.0 : Wed Oct 17 2007 - 02:54:50 EDT