Re: DataObject expiring?

From: Marek Šab (msab..uk.cvut.cz)
Date: Wed Jan 06 2010 - 12:24:39 EST

  • Next message: Marek Šab: "Re: DataObject expiring?"

    I will try to reproduce it and open detailed issue.

    Regards,

    Marek

    Bryan Lewis wrote:
    > Marek, would you like the honor of opening the Jira? Your stack trace will
    > be more useful than my story.
    >
    >
    > On Wed, Jan 6, 2010 at 5:25 AM, Andrus Adamchik <andru..bjectstyle.org>wrote:
    >
    >
    >> Would you mind opening a Jira with these details and include the JVM
    >> version and maybe the CPU type on your server?
    >>
    >> Weak references in Cayenne 3.0 are at the ObjectStore level and should not
    >> affect relationships, if Java works correctly. I.e. related objects are
    >> store via hard references.
    >>
    >> Andrus
    >>
    >>
    >>
    >>
    >> On Jan 6, 2010, at 4:45 AM, Bryan Lewis wrote:
    >>
    >> This rings a bit of a bell with me. We made our first big release with
    >>
    >>> Cayenne 3.0 a couple of weeks ago (it went well, thank you) and saw a
    >>> similar-sounding problem. It happened only intermittently and only on our
    >>> production server. We could never reproduce it on our test server, let
    >>> alone in a debugger.
    >>>
    >>> We had an object stored in the session. Our editor-page initialization
    >>> code
    >>> got the object and then the value of its to-one relationship. This
    >>> related
    >>> object would occasionally be null.
    >>>
    >>> StoryDetail object from session ---to-one---> Story (occasionally
    >>> null)
    >>>
    >>> We couldn't pin down how to reproduce it. (The user it kept happening too
    >>> works very remotely.) My guess was some kind of garbage collection. The
    >>> user would enter a lot of text for several minutes and then save/refresh
    >>> the
    >>> page and get the NPE. The other hint was that the same code had never had
    >>> a
    >>> problem in two years with Cayenne 2. On the other hand, I was unable to
    >>> reproduce it by adding explicit garbage collection calls so my guess could
    >>> be off base.
    >>>
    >>> I worked around it by refetching the list of StoryDetails, with a prefetch
    >>> on Story, so that the desired Story object would always be freshly
    >>> fetched.
    >>>
    >>>
    >>>
    >>> On Tue, Jan 5, 2010 at 3:31 PM, Andrus Adamchik <andru..bjectstyle.org
    >>>
    >>>> wrote:
    >>>>
    >>> On the surface looks like some (de)serialization issue. Although that
    >>>
    >>>> doesn't make much sense, as RelationshipFault.relationshipOwner is not
    >>>> transient and can't be reset to null easily. The best bet is to run this
    >>>> in
    >>>> debugger to get a better picture of what's going on with your objects.
    >>>>
    >>>> Andrus
    >>>>
    >>>>
    >>>> On Jan 5, 2010, at 10:13 PM, Marek Šabo wrote:
    >>>>
    >>>> Hi all,
    >>>>
    >>>>> is there any way that a dataobject could expire? I mean i'm storing
    >>>>> user's
    >>>>> settings dataobject in session and after a while, say max 5 min. when I
    >>>>> try
    >>>>> to submit a form that binds this data as foreign key I got a nullpointer
    >>>>> exception from setting up that relationship. I think it does't expire in
    >>>>> session because I'm still logged in and only way is to logout and login
    >>>>> back
    >>>>> to have the setting reloaded from database. Appending end of stacktrace:
    >>>>>
    >>>>> at
    >>>>>
    >>>>> org.apache.cayenne.util.RelationshipFault.isTransientParent(RelationshipFault.java:70)
    >>>>> at
    >>>>>
    >>>>> org.apache.cayenne.util.PersistentObjectList.isFault(PersistentObjectList.java:75)
    >>>>> at
    >>>>>
    >>>>> org.apache.cayenne.util.PersistentObjectList.add(PersistentObjectList.java:125)
    >>>>> at
    >>>>>
    >>>>> org.apache.cayenne.CayenneDataObject.addToManyTarget(CayenneDataObject.java:282)
    >>>>> at
    >>>>>
    >>>>> org.apache.cayenne.CayenneDataObject.setReverseRelationship(CayenneDataObject.java:364)
    >>>>> at
    >>>>>
    >>>>> org.apache.cayenne.CayenneDataObject.setToOneTarget(CayenneDataObject.java:315)
    >>>>>
    >>>>> Thanks for any ideas,
    >>>>>
    >>>>> Regards
    >>>>>
    >>>>> --
    >>>>> Marek Šabo
    >>>>>
    >>>>>
    >>>>>
    >>>>
    >
    >

    -- 
    Marek Šabo
    Server Manager
    Club SU CVUT Buben
    Bubenečská Kolej (421)
    XMPP: zeratul02..mail.com
    



    This archive was generated by hypermail 2.0.0 : Wed Jan 06 2010 - 12:25:29 EST