if your sessionList.get() call and sessionList.remove() call are on
different threads you might just be hitting some standard concurrency
issues.

In other words, imagine this order of events with 2 threads:

T1 - sessionList.get()
T2 - sessionList.remove()
T1 - session.getAttribute()



--
Joakim Erdfelt <[email protected]>
webtide.com <http://www.webtide.com/> - intalio.com/jetty
Expert advice, services and support from from the Jetty & CometD experts
eclipse.org/jetty - cometd.org


On Tue, Feb 18, 2014 at 9:26 AM, John English <[email protected]>wrote:

> I'm trying to track down a weird error relating to sessions. Using Jetty
> 8.1.8, I'm getting an IllegalStateException when I try to use
> getAttribute() to get an attribute from a session, which apparently
> indicates that the session has been invalidated.
>
> When a session is created, I store a reference to it in an ArrayList, so
> that I can display a list of logged-in users with code like this:
>
>   HttpSession session = sessionList.get(n);
>   SessionState s = (SessionState)session.getAttribute("state");
>   ...                                    ^^^^^^^^^^^^
> IllegalStateException!
>
> and I have a session listener which removes sessions from the list when
> they are destroyed:
>
>   public void sessionDestroyed(HttpSessionEvent event) {
>     HttpSession session = event.getSession();
>     sessionList.remove(session);
>     ...
>   }
>
> This is hard for me to figure out since it happened on a live system and I
> can't reproduce it elsewhere, and I can't get at the sessionList on the
> live system. It just happened the other day for the first time following an
> update a couple of weeks ago, so there's obviously something in the updated
> code which has caused it, but working through the changelogs I can't see
> anything remotely relevant -- this is all old code.
>
> It looks like the session is being invalidated without sessionDestroyed()
> being called -- is there any way that could happen? Or is there any other
> reason for an IllegalStateException to be thrown?
>
> TIA,
> --
> John English
> _______________________________________________
> jetty-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to