Well, no luck so far, I didn't manage to reproduce this so I'm not sure
if I should open a bug. Maybe if the issue will rise again sometime in
the future.
Marek
Marek Šabo wrote:
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
<[email protected]>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
<[email protected]
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: [email protected]