Re: DataRowStore.sendUpdateNotification NullPointerException

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon Oct 08 2007 - 04:11:58 EDT

  • Next message: Andrus Adamchik: "Re: DataRowStore.sendUpdateNotification NullPointerException"

    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.snapshotsUpdatedForObject
    >>>>>>> s
    >>>>>>> (DataRowStore.java:278)
    >>>>>>> at
    >>>>>>> org.apache.cayenne.access.ObjectResolver.objectsFromDataRows
    >>>>>>> (ObjectResolver.java:121)
    >>>>>>> at
    >>>>>>> org.apache.cayenne.access.ObjectResolver.synchronizedObjectsFrom
    >>>>>>> Da
    >>>>>>> taR
    >>>>>>> ows(ObjectResolver.java:97)
    >>>>>>> at
    >>>>>>> org.apache.cayenne.access.DataDomainQueryAction.interceptObjectC
    >>>>>>> on
    >>>>>>> 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.
    >



    This archive was generated by hypermail 2.0.0 : Mon Oct 08 2007 - 04:12:27 EDT