Randy,

Great!  I'll report back if there are any issues.

Thanks.

On 3/28/06, Randy Watler <[EMAIL PROTECTED]> wrote:
> Ethan,
>
> Fixed in SVN HEAD. Let me know if it does not resolve you issue,
>
> Randy
>
> On Tue, 2006-03-28 at 11:56 -0700, Randy Watler wrote:
> > Ethan,
> >
> > I will take care of this for you now. There is an open JIRA to
> > strengthen the code in the PageManager implementations in the face of
> > concurrent sessions/threads.
> >
> > http://issues.apache.org/jira/browse/JS2-479
> >
> > Keep the observations coming... we appreciate it!
> >
> > Randy
> >
> > On Tue, 2006-03-28 at 11:33 -0500, Ethan Adams wrote:
> > > Not too much to elaborate on, but I'll try.
> > >
> > > We have a load test that cycles through 100 users, and then starts
> > > over at user one.  The user logs in, hits a few pages, and then logs
> > > out.
> > >
> > > We will randomly get the NPE during the logout in which the
> > > request.getSession(true).invalidate() is called.  This starts the
> > > chain of session cleanup which involves the removeListener() call on
> > > PageManager.
> > >
> > > The fact the an unsynchronized List is being used to manage the event
> > > listeners is what really concerned me.  There will definitely be mutli
> > > threaded access to this...Unless I'm reading the code wrong.
> > >
> > > In addition, if you look at the LinkedList.java source and the line
> > > the NPE occurs, it seems that the "e" object is null.  Another sign of
> > > something out of sync
> > >
> > >     public boolean remove(Object o) {
> > >         if (o==null) {
> > >             for (Entry<E> e = header.next; e != header; e = e.next) {
> > >                 if (e.element==null) {
> > >                     remove(e);
> > >                     return true;
> > >                 }
> > >             }
> > >         } else {
> > >             for (Entry<E> e = header.next; e != header; e = e.next) {
> > > LINE 220-->if (o.equals(e.element)) {
> > >                     remove(e);
> > >                     return true;
> > >                 }
> > >             }
> > >         }
> > >         return false;
> > >     }
> > >
> > > On 3/28/06, Aaron Evans <[EMAIL PROTECTED]> wrote:
> > > > Hey Ethan,
> > > > haven't run into that, but could you post some of your findings?
> > > >
> > > > On 3/28/06, Ethan Adams <[EMAIL PROTECTED]> wrote:
> > > > > I'm running a 100 user load test on Jetspeed-2 final on Java 1.5.
> > > > > During the logout, a session invalidate is called which ultimately
> > > > > calls AbstractPageManager.removeListener().  This intern calls
> > > > > LinkedList.remove() which is throwing an NPE.  I'm assuming this is
> > > > > happening because LinkedList is not synchronized, and neither are the
> > > > > methods accessing it.
> > > > >
> > > > > Anyone else run into this problem.
> > > > >
> > > > > java.lang.NullPointerException
> > > > >         at java.util.LinkedList.remove(LinkedList.java:220)
> > > > >         at 
> > > > > org.apache.jetspeed.page.AbstractPageManager.removeListener(AbstractPageManager.java:678)
> > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to