Re: IllegalStateException in DataRowStore (thrown by LRUMap)

From: Lothar Krenzien (lkrenzie..eb.de)
Date: Mon Jun 19 2006 - 06:37:49 EDT

  • Next message: Andrus Adamchik: "Re: IllegalStateException in DataRowStore (thrown by LRUMap)"

    What I've just realized is that the DataContext is obtained like this :

     import org.objectstyle.cayenne.conf.ServletUtil.
     ...
     ServletUtil.getSessionContext(request.getSession());

    In the user guide the following two methods are descriped:

     BasicServletConfiguration.getDefaultContext(session);
     DataContext.getThreadDataContext();

    Could that cause any problems ?

    Lothar

    > -----Ursprüngliche Nachricht-----
    > Von: cayenne-use..ncubator.apache.org
    > Gesendet: 19.06.06 11:03:45
    > An: cayenne-use..ncubator.apache.org
    > Betreff: Re: IllegalStateException in DataRowStore (thrown by LRUMap)

    > I did some research of CAY-565 over the weekend. Unfortunately I
    > can't reproduce the issue.
    >
    > I wrote a test case that randomly performs one of the operations -
    > select; insert of an object with relationship; object update; object
    > delete with relationship. Running up to 30 parallel request threads
    > with JMeter, I don't see any exceptions except for occasional fault
    > failures (that are expected under these test conditions as I don't
    > lock the objects). I even found and fixed an unrelated deadlock that
    > I am sure nobody has ever seen in the wild (CAY-573)... still can't
    > reproduce the LRUMap problem.
    >
    > I'll try to change the test conditions, but if Bryan or Lothar (two
    > people who have experienced the issue) have any more insights on the
    > ways to reproduce it, please share.
    >
    > Andrus
    >
    >
    > On Jun 16, 2006, at 1:27 PM, Andrus Adamchik wrote:
    > > On Jun 16, 2006, at 1:12 PM, Lothar Krenzien wrote:
    > >
    > >> I did it yesterday and now I'm getting the already known NPE
    > >> again. And I'm sure that I didn't changed the cayenne version. But
    > >> what I saw is that in the case of NPE always the same method of me
    > >> is called.
    > >
    > > Very very strange... so this would confirm a suspicion that there
    > > is a bug in the LRUMap not related to synchronization.
    > >
    > >
    > >> Another question :
    > >> I have a class which is extended from 'WebApplicationListener'. In
    > >> the method 'sessionDestroyed' the following code is executed :
    > >>
    > >> ObjectStore objectStore = dctx.getObjectStore();
    > >> objectStore.objectsInvalidated(objectStore.getObjects());
    > >>
    > >> It that really neccessary ?
    > >
    > > It may or may not be useful. On the one hand, the ObjectStore is
    > > about to go out of scope at this point, so it (and all its objects)
    > > will be garbage collected without any extra help.
    > >
    > > One other thing that invalidate does is throwing away cached
    > > snapshots from the cache shared by other sessions. On the positive
    > > side it frees up some memory, on the negative - it removes items
    > > from cache that could've otherwise speed up object resolution in
    > > other sessions.
    > >
    > > I'd say keep it if your sessions share just a few objects between
    > > each other or share no objects at all; throw it away if the object
    > > sets significantly overlap between individual sessions.
    > >
    > > Andrus
    > >
    >

    _____________________________________________________________________
    Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
    http://smartsurfer.web.de/?mc=100071&distributionid=000000000071



    This archive was generated by hypermail 2.0.0 : Mon Jun 19 2006 - 07:09:01 EDT