Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Tomcat Users »

Re: Clear User Session

Tim Funk

2003-06-06

Replies:

Depending on who you talk to its a bug or not a bug in tomcat.

session.getAttributeNames() returns an Enumeration. Under the covers, the
Enumeration is actually a facade around an Iterator. Iterators are fail-fast
so if you are enumerating through session attributes and make changes, you
get the error as you have described.

The arguement is: is Enumeration allowed to be fail-fast?

In the meantime, 4.1 and 5 were patched to not make the Enumerator
originating from session.getAttributeNames be fail-fast.


As an aside - if you need to clear out a session: session.invalidate() is
much easier.

-Tim

Shyama Gavulla wrote:
> Hi All,
>
> I just moved my webapp from jrun to tomcat. I have a method which clears the
> user session. The code snippet is
>
> Enumeration session_var = session.getAttributeNames();
>
>    while(session_var.hasMoreElements())
>    {
>       String key=(String)session_var.nextElement();
>
> I am getting an error here and the exception is
>
> java.util.ConcurrentModificationException at
> java.util.HashMap$HashIterator.nextEntry
>
> How can I resolve this error.
>
> Thanks a lot in advance
> shyam


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)


©2008 junlu.com - Jax Systems, LLC, U.S.A.