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
>>>>
>>>>
>>>
>>>
>
This archive was generated by hypermail 2.0.0 : Wed Jan 06 2010 - 07:29:18 EST